From 13944c2f18f664b11f6e7ab9da28dc6b2c51701f Mon Sep 17 00:00:00 2001 From: ptkach Date: Wed, 6 Aug 2025 19:17:21 +0000 Subject: [PATCH] Update resource allocation for proxy deployment Missing resource requests as well as metrics for when to evict resource produced situation when under load k8s struggled to assign pods. This adds default resource requirements based on 2 weeks metrics and instructions when resource should be evicted. --- proxy/deploy-proxy-for-env.sh | 1 + proxy/kubernetes/proxy-limit-range.yaml | 14 ++++++++++++++ proxy/kubernetes/proxy-service-canary.yaml | 7 +++++++ proxy/kubernetes/proxy-service.yaml | 8 ++++++++ 4 files changed, 30 insertions(+) create mode 100644 proxy/kubernetes/proxy-limit-range.yaml diff --git a/proxy/deploy-proxy-for-env.sh b/proxy/deploy-proxy-for-env.sh index a20c53b6de7..3eeca05d010 100755 --- a/proxy/deploy-proxy-for-env.sh +++ b/proxy/deploy-proxy-for-env.sh @@ -33,6 +33,7 @@ do --project "${project}" --zone "${parts[1]}" sed s/GCP_PROJECT/${project}/g "./kubernetes/proxy-deployment-${environment}.yaml" | \ kubectl apply -f - + kubectl apply -f "./kubernetes/proxy-limit-range.yaml" --force kubectl apply -f "./kubernetes/proxy-service.yaml" --force # Alpha does not have canary if [[ ${environment} != "alpha" ]]; then diff --git a/proxy/kubernetes/proxy-limit-range.yaml b/proxy/kubernetes/proxy-limit-range.yaml new file mode 100644 index 00000000000..9c01bf1cd14 --- /dev/null +++ b/proxy/kubernetes/proxy-limit-range.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: LimitRange +metadata: + name: resource-limits + namespace: default +spec: + limits: + - type: Container + default: + cpu: "300m" + memory: "512Mi" + defaultRequest: + cpu: "100m" + memory: "350Mi" diff --git a/proxy/kubernetes/proxy-service-canary.yaml b/proxy/kubernetes/proxy-service-canary.yaml index 240f7a98f1c..bd6489e209a 100644 --- a/proxy/kubernetes/proxy-service-canary.yaml +++ b/proxy/kubernetes/proxy-service-canary.yaml @@ -33,3 +33,10 @@ spec: name: proxy-deployment-canary maxReplicas: 10 minReplicas: 1 + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 100 diff --git a/proxy/kubernetes/proxy-service.yaml b/proxy/kubernetes/proxy-service.yaml index ccacf4d77a4..4d8b6307ccc 100644 --- a/proxy/kubernetes/proxy-service.yaml +++ b/proxy/kubernetes/proxy-service.yaml @@ -33,3 +33,11 @@ spec: name: proxy-deployment maxReplicas: 50 minReplicas: 10 + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 100 +