Hands-on Lab·Certified Kubernetes Application Developer
Canary Deployments by Replica Count
A canary needs no mesh and no ingress weighting: put both versions behind one Service with one shared label, and the traffic split is the ratio of ready Pods. It is the cheapest possible progressive delivery and it has one honest limitation, measured here - the split is approximate, and at low request counts it is not close to the ratio you set.
Application Deployment Guide 18 of 44 Intermediate
- Kubernetes1.36.4
- Runtimecontainerd 2.2.6
- CNICalico v3.32.1
- TimeAbout 15 min
- Reviewed23 August 2026
Written against the versions above. kube-proxy picks a backend per connection, effectively at random with equal weight per endpoint. Over a very large number of requests the split approaches the replica ratio; over forty it does not, as the measurement below shows.
| Server Name | IP Address | OS | Roles | CPU | RAM | HDD |
|---|---|---|---|---|---|---|
| CKA1001 | 192.168.0.175 | Ubuntu 26.04 LTS | Control Plane Node | 2 Core | 4 GB | 50 GB |
| CKA1001-NODE01 | 192.168.0.176 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
| CKA1001-NODE02 | 192.168.0.177 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
| CKA1001-NODE03 | 192.168.0.178 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
Before you start
- A cluster with room for ten small Pods.
- The session creates namespace
ckad-canarywith Deploymentstable(9 replicas, servingv1), Deploymentcanary(1 replica, servingv2), one Service selecting both, and a client Pod.
-
One Service, two Deployments, one shared label
-
Count the split
-
Promote by scaling