AKS & Container Networking参照資料確認: 2026-09-11

Azure CNI Powered by Cilium

AKSのCilium eBPF data planeを、IPAMとは独立したpacket forwarding・Service routing・NetworkPolicy・ACNS基盤として設計する。

この記事の目次

Azure CNI Powered by Ciliumを理解するための前提

AKS networkingは変化が速いため、旧方式とcurrent recommendationを区別して記載しています。実装直前には下記Microsoft Learnのcurrent constraints / region / version supportを再確認してください。

Microsoftは2026年のcurrent guidanceでAzure CNI Powered by CiliumをAKSのrecommended and supported long-term networking configurationと位置付けている。 CiliumはeBPFを利用したAKS data planeで、Azure CNIのOverlayまたはVNet由来pod IP方式と組み合わせられる。

Azure CNI Powered by Cilium clusterではService routingをCiliumが担い、kube-proxyを使用しない。 CiliumにはNetworkPolicy engineが組み込まれ、別のAzure NPM/Calicoを必須としない。migrationでは既存engineがCiliumへ置換される場合がある。

current Microsoft LearnではAzure CNI Powered by CiliumはLinuxのみ。Windows nodeを必要とするclusterではこの制約を先に設計へ反映する。 hostNetwork podには通常のpod NetworkPolicyが適用されない点や、ipBlockでnode/pod IPをallowする際の制約など、policy semanticsを事前にtestする。

通信経路と責任境界

調査原則: Kubernetes objectが正しいことはAzure data pathの正常性を保証せず、Azure resourceがHealthyであることもpod-to-pod/pod-to-serviceの成功を保証しません。source・destination・protocol・port・時刻を固定して両layerを照合します。

アドレスと識別情報の考え方

Address / identityWhere it lives運用上の意味
Pod IPAzure CNI IPAMが供給Ciliumを採用してもOverlay/flatのIPAM choiceは別。
Cilium identitylabels/namespace等からworkloadを識別policy selectionはIPだけでなくidentity semanticsを持つ。
Service identityKubernetes Service/EndpointCilium data planeがService routingを担う。
Host identityhostNetwork/node traffic通常podとpolicy boundaryが異なるため別レビュー。
重要: IPアドレスそのものとworkload/service identityを混同しません。autoscale・reschedule・SNAT・load balancingでaddressは変化するため、Kubernetes metadataとAzure resource identityを合わせて記録します。

設計判断

判断軸確認する問い設計として固定すること
OS supportWindows nodeが必要か必要ならcurrent Cilium limitationを理由に別data plane/cluster splitを評価。
PolicyKubernetes NetworkPolicyだけか、FQDN/L7等ACNSが必要かadvanced security requirementがあればCilium + ACNSを評価。
Migration既存Calico/Azure NPM policyとのsemantic差はないかstaging clusterでpolicy regression test。
PerformanceeBPF Host Routing等が必要か対応OS/feature conflictを確認し、通常Cilium migrationと別changeで評価。
ObservabilityHubble metrics/flow logsが必要かACNS observabilityはCilium/non-Cilium両方で使えるが、security機能はCilium前提。

実装・移行の順序

  1. 既存clusterのIPAM mode、network policy engine、OS/node pool構成をinventoryする。
  2. NetworkPolicy manifestを収集し、ipBlock/hostNetwork/特殊policy semanticsを洗い出す。
  3. supported migration pathでdata planeだけを変更し、IPAM changeと同時実施しない。
  4. canary workloadでDNS、Service、pod-to-pod、egress、ingress、deny/allow policyを再実行する。
  5. Cilium/ACNS telemetryでdrop/flowを確認し、既存iptables前提のoperational toolingを見直す。
  6. node rollout完了後に全node/podが期待data plane上にいることを確認する。

運用で残しておく情報

観点残すべき運用証拠
ProfilenetworkDataplaneがciliumか確認。
PoliciesNetworkPolicy/Cilium policyとselected endpointsを確認。
Host networkinghostNetwork workloadを抽出し、policy boundary外としてレビュー。
Node rolloutnode OS/version/Cilium rollout差で局所障害がないか比較。

変更前に確認する

Control state

AKS networkProfile、Kubernetes object、Azure associationをread-onlyで採取し、desired configurationを固定する。

Data plane

同じ5-tupleで実通信し、forward path・return path・source translation・policy decisionを証明する。

Observability

DNS/TCP/flow/drop/backend health等、障害点に対応するsignalを同一時刻で収集する。

Negative test

allowだけでなく、禁止すべき通信が明示的に失敗することもsecurity acceptanceへ含める。

Read-only / discovery commands
az aks show -g <rg> -n <cluster> --query "{plugin:networkProfile.networkPlugin,mode:networkProfile.networkPluginMode,dataplane:networkProfile.networkDataplane,policy:networkProfile.networkPolicy}" -o jsonc
kubectl get nodes -o wide
kubectl get networkpolicy -A
kubectl get pods -A -o wide

Common failure modes

症状疑うboundary確認・是正
policy migration後に通信差Calico/Azure NPMとCiliumのsemantics差affected NetworkPolicyを最小fixtureで再現しselector/ipBlock/hostNetworkを確認。
一部nodeだけ異常rolling migration差node label/versionとpod placementを比較。
hostNetwork podがpolicyを迂回current Cilium limitationhostNetworkを別security controlで保護し、通常pod policyと混同しない。
Windows workloadが載らないCilium Linux-onlycluster/node-pool architectureを再検討。

Change safety / rollback

一括変更を避ける: Cilium migrationはpacket forwardingとpolicy engineを変える。単にcluster update成功を完了条件にせず、deny/allowのnegative testとbusiness trafficを両方再実行する。

Official sources