Abstract

This post describes a simple networking implementation with Flannel.

Deploy the Flannel Networking Add On#

Flannel for networking#

There are quite a few Networking Add Ons for Kubernetes to choose from.

The author has direct experience with Calico, Cillium, and Flannel of which Flannel is the easiest to work with and explain.

Flannel Install Guide#

There are at least two methods for installing Flannel.

Install Flannel with kubectl#

For those in a rush, the simplest method[1] is to install via kubectl apply.

kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

Install Flannel with Helm#

Deploying with Helm[2] requires a few more steps, but also allows for much easier customization.

  1. Create a namespace called kube-flannel.

    make a namespace#
    kubectl create ns kube-flannel
    
  2. Enable privileged containers in the new kube-flannel namespace.

    update the namespace properties#
    kubectl label --overwrite ns kube-flannel pod-security.kubernetes.io/enforce=privileged
    
  3. Add the Flannel Helm repository to your local repositories.

    add the repository to your local list#
    helm repo add flannel https://flannel-io.github.io/flannel/
    
  4. Install Flannel with Helm, adjusting values as required.

    finally install flannel#
    helm install flannel --set podCidr="10.244.0.0/16" --namespace kube-flannel flannel/flannel
    

    If this runs as expected, you’ll see a result like the following.

    flannel deployed via helm#
    NAME: flannel
    LAST DEPLOYED: Sun Sep  7 07:43:51 2025
    NAMESPACE: kube-flannel
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    

We now have a cluster that’s ready to run workloads.