Scaling kOps

Scaling the control plane

Dedicated API Server nodes

Introduced
kOps 1.21

A common bottleneck of the control plane is the API server. As the number of pods and nodes grow, you will want to add more resources to handle the load.

You can scale the API server horizontally by adding instance groups dedicated to running API server nodes. You can do so by adding an instance group with the APIServer role:

  1. apiVersion: kops.k8s.io/v1alpha2
  2. kind: InstanceGroup
  3. metadata:
  4. creationTimestamp: null
  5. labels:
  6. kops.k8s.io/cluster: <cluster name>
  7. name: apiserver-eu-central-1a
  8. spec:
  9. image: 099720109477/ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-20201026
  10. machineType: t3.small
  11. maxSize: 3
  12. minSize: 3
  13. nodeLabels:
  14. kops.k8s.io/instancegroup: apiserver-eu-central-1a
  15. role: APIServer
  16. subnets:
  17. - eu-central-1a

or run kops create ig --name=<cluster name> apiserver-eu-central-1a --subnet=eu-central-1a

Because the labels, taints, and domains can change, this feature is currently behind a feature gate.

  1. export KOPS_FEATURE_FLAGS="+APIServerNodes"