Skip to content

Registry production cluster: reduce platform node group 4 -> 2 - #1072

Merged
arielr-lt merged 3 commits into
masterfrom
feat/private-nodegroup-4to2
Sep 4, 2026
Merged

Registry production cluster: reduce platform node group 4 -> 2#1072
arielr-lt merged 3 commits into
masterfrom
feat/private-nodegroup-4to2

Conversation

@arielr-lt

@arielr-lt arielr-lt commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

Reduces the platform node group eks-ng-private on the production ce-registry-eks cluster from 4× t3.large → 2× t3.large.

Ariel Rolfo added 2 commits September 3, 2026 08:10
The private node group hosts only shared platform services (ingress-nginx,
coredns, cert-manager, external-secrets, EBS CSI controllers, metrics-server,
New Relic + CloudWatch agents) — ~1.9Gi of requests total. It sat idle at 4x
t3.large because cluster-autoscaler never scales down nodes running kube-system
pods (skip-nodes-with-system-pods).

Raise priv_ng_min_size 0 -> 2 (explicit HA floor, 1 per AZ). Actual reduction
to 2 is triggered by setting desiredSize=2 via the EKS API, since TF ignores
desired_size (CA-managed). PDBs on ingress/coredns/ebs-csi-controller keep the
drain safe (one disruption at a time).
@arielr-lt arielr-lt changed the title eks-ng-private: reduce shared platform node group 4 -> 2 Registry production cluster: reduce platform node group 4 -> 2 Sep 3, 2026
@arielr-lt
arielr-lt requested a review from rohit-joy September 3, 2026 12:13
Comment thread terraform/environments/eks/terraform.tfvars Outdated
Addresses PR review (Rohit): the private node group runs only platform/system
services, so downsize from t3.large to t3.medium (~half the cost) and cap max
at 3 (was 10 — surge headroom for node upgrades, not the excessive 10).

t3.medium is capped at 17 pods by the VPC CNI ENI limit and the platform layer
runs ~19/node, so this requires prefix delegation:
- ENABLE_PREFIX_DELEGATION=true on the aws-node DaemonSet (set on the cluster)
- a launch template on the private node group with a nodeadm maxPods=110 override

Attaching the LT + changing instance type forces a node-group replacement, so
name_prefix + create_before_destroy roll the new t3.medium group in before the
old t3.large group is destroyed. Registry app nodes (prod-v2) are untouched;
only platform pods reschedule (PDB-protected).
@arielr-lt
arielr-lt merged commit 810478d into master Sep 4, 2026
14 of 15 checks passed
@arielr-lt
arielr-lt deleted the feat/private-nodegroup-4to2 branch September 4, 2026 14:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants