How to Install Cilium on Vultr Kubernetes Engine
Cilium is an open-source networking and security tool for Kubernetes, powered by eBPF. It offers high-performance networking, identity-based security, and deep observability, replacing traditional IP-based rules with application-aware policies for modern, scalable environments.
CNI controllers are responsible for managing private networking for Kubernetes resources such as pods and services. By default, VKE comes with Calico pre-installed as the CNI. However, if the Bring Your Own CNI feature is enabled, VKE clusters are provisioned without a CNI, meaning Calico is not included. This feature allows you to install and configure a CNI controller of your choice, giving you greater flexibility in managing your networking stack.
In this guide, you will install and configure Cilium as the CNI controller on a Vultr Kubernetes Engine (VKE) cluster.
Prerequisites
- Vultr Kubernetes Engine (VKE) cluster.
- Access to BYO CNI Feature, contact support.
- Kubernetes Config
(KUBECONFIG)
for cluster management.
Install Cilium
In your terminal after configuring the cluster, verify the missing CNI controller.
console$ kubectl get deployments -n kube-system
Output:
NAME READY UP-TO-DATE AVAILABLE AGE cluster-autoscaler 0/1 0 0 66s coredns 0/1 0 0 64s
Install Cilium CLI on your workstation.
bashCILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/main/stable.txt) CLI_ARCH=amd64 if [ "$(uname -m)" = "aarch64" ]; then CLI_ARCH=arm64; fi curl -L --fail --remote-name-all https://github.com/cilium/cilium-cli/releases/download/${CILIUM_CLI_VERSION}/cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum} sha256sum --check cilium-linux-${CLI_ARCH}.tar.gz.sha256sum sudo tar xzvfC cilium-linux-${CLI_ARCH}.tar.gz /usr/local/bin rm cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}
Install Cilium on the VKE cluster.
console$ cilium install --version 1.16.6 --set cluster.name=YOUR_CLUSTER_NAME
Note: In the command above, we set a new cluster name because VKE's default name exceeds 32 characters. Cilium does not support cluster names longer than this limit and will throw an error if it occurs.
Error: Unable to install Cilium: execution error at (cilium/templates/validate.yaml:144:5): The cluster name is invalid: must not be more than 32 characters. Configure 'upgradeCompatibility' to 1.15 or earlier to temporarily skip this check at your own risk
Verify the Cilium installation.
console$ kubectl get deployment -n kube-system
Output:
NAME READY UP-TO-DATE AVAILABLE AGE cilium-operator 1/1 1 1 13m cluster-autoscaler 1/1 1 1 21m coredns 1/1 1 1 21m
Conclusion
In this guide, you successfully installed and configured Cilium as the CNI controller on a Vultr Kubernetes Engine (VKE) cluster. By leveraging the Bring Your Own CNI feature, you replaced the default Calico installation with Cilium, gaining access to advanced networking, security, and observability features powered by eBPF.
For more information, refer to the following documentation: