From 427f6db8207ac11df8d7f9500dcd805217bff76e Mon Sep 17 00:00:00 2001 From: Pavlo Tkach <3469726+ptkach@users.noreply.github.com> Date: Fri, 8 Aug 2025 11:35:22 -0400 Subject: [PATCH] Update resource allocation for proxy deployment (#2794) 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 a20c53b6d..3eeca05d0 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 000000000..9c01bf1cd --- /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 240f7a98f..bd6489e20 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 ccacf4d77..4d8b6307c 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 +