AKS – Cilium Installation with Helm

Previously, I’ve presented the following topics:

In this post, I will show how to install Cilium with Helm on an AKS cluster created in BYOCNI mode (--network-plugin none

Table of Contents

Create AKS BYOCNI Cluster

For BYOCNI, AKS is created without any CNI plugin. Nodes will start in NotReady until you install your own CNI. Here is the cluster definition I used:

				
					az aks create \
  --resource-group rg-aks-cilium-demo \
  --name aks-cilium-demo \
  --location germanywestcentral \
  --node-count 2 \
  --node-vm-size Standard_B2s \
  --network-plugin none \
  --pod-cidr 10.111.0.0/16 \
  --service-cidr 10.0.0.0/16 \
  --dns-service-ip 10.0.0.10 \
  --generate-ssh-keys

				
			

Key points:

  • --network-plugin none enables Bring Your Own CNI (BYOCNI); AKS does not install Azure CNI or kubenet.

  • You must provide a pod CIDRservice CIDR, and DNS service IP, and make sure these ranges do not overlap with other networks in your environment.

After the cluster is created, get credentials:

				
					az aks get-credentials \
--resource-group rg-aks-cilium-demo \
--name aks-cilium-demo \
--overwrite-existing
				
			
AKS Nodes "NotReady" - no CNI
AKS Nodes "NotReady" - no CNI

Adding Cilium Helm Repository

Add the official Cilium Helm repository and update it:

Add Cilium Helm Repository
Add Cilium Helm Repository

List the available version:

List Cilium Helm version
List Cilium Helm version

Cilium Installation

On BYOCNI you are responsible for pod IPAM, routing, and tunnel mode. AKS only uses the pod-cidr for control‑plane‑to‑pod routing. A typical Helm installation for Cilium as the primary CNI on AKS BYOCNI might look like this:

				
					helm install cilium cilium/cilium \
  --version 1.19.1 \
  --namespace kube-system \
  --set ipam.mode=cluster-pool \
  --set ipam.operator.clusterPoolIPv4PodCIDRList='{10.111.0.0/16}' \
  --set ipam.operator.clusterPoolIPv4MaskSize=24 \
  --set kubeProxyReplacement=false

				
			
Cilium Installation using Helm
Cilium Installation using Helm

Explanation:

After installation, nodes should become Ready and core system pods such as CoreDNS should start running.

Verification

Cilium Status:

Cilium Status
Cilium Status

Nodes are “Ready”:

AKS Nodes "Ready" with Cilium CNI
AKS Nodes "Ready" with Cilium CNI

Cilium Pods have been created:

Cilium Pods
Cilium Pods

Conclusions

This guide demonstrates installing Cilium on an AKS BYOCNI cluster using Helm as the primary deployment method. Key steps include adding the Cilium Helm repository, configuring cluster‑pool IPAM with your pod CIDR (10.111.0.0/16) and setting kubeProxyReplacement=false to align with AKS defaults.

Leave a Reply

Your email address will not be published. Required fields are marked *