How to Install Cilium on Vultr Kubernetes Engine

Updated on January 29, 2025
How to Install Cilium on Vultr Kubernetes Engine header image

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

Install Cilium

  1. 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
  2. Install Cilium CLI on your workstation.

    bash
    CILIUM_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}
    
  3. 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
  4. 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: