The Wire · Showcase
KOPS SHIPS APISERVER-ONLY NODES, KUBE-OPENAPI FIXES STDLIB JSON COLLISION
By RepoJournal · Filed · About Kubernetes
Kops now lets you run dedicated API server nodes separate from control plane workers, solving a years-old load balancer problem that sent traffic to both when you only wanted one.
Kops landed three related changes that reshape how you can distribute control plane work across nodes [1] [2] [3]. The issue: when you had both APIServer and Control Plane nodes, the load balancer sent traffic to both, forcing your core controllers to share resources with API traffic. Now with the new --api-server-size flag and DNS None routing, traffic routes only to APIServer nodes, protecting controller capacity. This is the topology you've been asking for. Over in kube-openapi, a critical fix landed to insulate go-json-experiment from stdlib JSON packages [4] [5]. Without this, Go 1.27's changing json/v2 prerelease behavior was causing unit test failures. The fix drops aliases to json/v1 and json/v2, ensuring go-json-experiment stays self-contained until the actual stdlib migration. Test-infra cleaned up benchmark noise by removing yaml, table, and json-pretty LIST benchmark jobs [6], keeping only JSON, proto, and cbor for cleaner signal on scalability regressions. Kops also hardened RHEL 10+ support by loading the ip_set kernel module and disabling firewalld on ForceNftables distros [7], unblocking Calico e2e failures across the grid.
One email a day. Unsubscribe in one click.
Keep up with Kubernetes in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Review kops 1.35+ release notes if you run dedicated APIServer topology - new --api-server-size flag is live kubernetes/kops [plan]
- → Merge kube-openapi stdlib insulation fix into your vendored version before upgrading Go toolchain past 1.27 kubernetes/kube-openapi [plan]
- → Monitor test-infra benchmark job consolidation if you have custom scalability test configs kubernetes/test-infra [monitor]
References
- [1] API only CLI ↗ kubernetes/kops
- [2] Fixing LB behavior when you have both APIServer and Control Plane. kubernetes/kops
- [3] Adding flag to enable machine type for APIServer only. kubernetes/kops
- [4] Insulate go-json-experiment from stdlib ↗ kubernetes/kube-openapi
- [5] Merge pull request #616 from liggitt/insulate-stdlib kubernetes/kube-openapi
- [6] Remove yaml, table, and json-pretty LIST benchmark jobs ↗ kubernetes/test-infra
- [7] nodeup: load ip_set module and disable firewalld on RHEL10 ↗ kubernetes/kops