Cilium Dataplane Migration Issues¶
Symptom¶
An AKS cluster migration to Azure CNI Powered by Cilium stalls, partially completes, or finishes with unexpected policy or connectivity behavior.
Possible Causes¶
- The cluster attempted an unsupported path such as kubenet directly to Cilium.
- The team tried to change IPAM mode and dataplane in one operation.
- Windows node pools or node auto-provisioning block the migration.
- Existing Azure NPM or Calico policy semantics were not revalidated for Cilium.
- The rollout was validated before all node pools finished reimaging.
Diagnosis Steps¶
flowchart TD
A[Cilium migration problem] --> B[Confirm source network mode and current target plan]
B --> C{Supported migration path?}
C -->|No| D[Split the migration into supported steps]
C -->|Yes| E[Check Windows NAP and existing policy engine blockers]
E --> F[Verify all node pools finished reimage]
F --> G[Retest policy behavior only after rollout completion] -
Inspect the cluster network profile.
az aks show \ --resource-group "$RG" \ --name "$CLUSTER_NAME" \ --query "networkProfile" \ --output yamlCommand Purpose az aks showShow the cluster network profile. --resource-groupResource group that contains the AKS cluster. --nameName of the AKS cluster. --querySelects the network profile. --outputOutput format for the result. -
Determine whether the cluster is coming from:
- Azure CNI node subnet,
- Azure CNI pod subnet,
- Azure CNI overlay,
- or kubenet.
-
Confirm whether the migration plan is doing one operation or two.
- Correct: update IPAM mode separately from dataplane.
- Incorrect: attempt to switch both in one change.
-
Check for known blockers such as Windows node pools, NAP, or old policy-engine assumptions.
Resolution¶
- Rebuild the migration plan into supported steps.
- For kubenet, migrate to Azure CNI Overlay first, then migrate the dataplane to Cilium.
- Remove or address blockers such as Windows node pools and NAP before retrying.
- Revalidate NetworkPolicy behavior after the full node reimage completes.
Prevention¶
- Use blue/green replacement when policy risk or rollback certainty is more important than in-place simplicity.
- Separate “IPAM mode migration” from “dataplane migration” in change tickets and runbooks.
- Capture pre-migration policy tests and compare them after the rollout.
See Also¶
- Azure CNI Powered by Cilium
- Networking Models
- Best Practices: Networking
- NetworkPolicy Not Blocking Traffic