Real world example of Kops deployment with 2 environments: lab and test. Use FluxCD to automatically deploy both infrastructure and applications.
The kubernetes cluster deploys on the three AZ of eu-west Region in a single VPC. All instance groups are Spot Fleets that created nodes inside the private subnet. All the nodes are running AL2 images and run on Graviton2 ARM instances.
A master-plane public NLB allow access to the Kubernetes API. The front public NLB will be created using a Kubernetes Ingress resource.
Cilium is the CNI provider deployed in the cluster.
Kops components used:
Name | Status | Description |
---|---|---|
AWS IAM Authentication | β | |
AWS Cloud Controller Manager | β | |
AWS Load Balancer Controller | β | A NLB will be created when deploying an Ingress |
Cluster autoscaler | β | Karpenter is used as a replacement |
Cert Manager | β | Deployed externally using FluxCD |
Cilium | β | |
CoreDNS | β | |
DNS Controller | β | |
EBS CSI | β | |
External VPC | β | |
FluxCD | β | Custom addon |
Hubble | β | Deploy Server & Relay |
Karpenter | β | π§ WIP |
Metric Server | β | Deployed using FluxCD & Prometheus Kube Stack |
Node local DNS | β | |
Node termination handler | β | |
Node Problem Detector | β | |
Snapshot controller | β |
π§ Terraform to create Kops S3 state bucket
To start the cluster
make create
make update
To delete the cluster
make delete