Há uma vários e diferentes interfaces de rede de containers (CNI) para Kubernetes. Com tantas opções diferentes, você deve imaginar que existem muitas funcionalidades diferentes.

Alguns são mais para “começar rapidamente” de uma perspectiva de facilidade de uso, e também existem CNIs que são mais focados em segurança ou mais “avançados”.

O Cilium é um CNI construído em torno do eBPF. Ele se concentra fortemente em redes, observabilidade e segurança para redes Kubernetes que usam eBPF para fazer o trabalho.

O que ele faz de uma perspectiva de rede no nível superior não é diferente. Ele permite que você tenha rede em seu cluster Kubernetes, tenha CIDRs específicos para Pods, garanta que os Pods possam se comunicar e todas as outras recursos de rede de um CNI. A maior diferença é que ele faz tudo com um backend eBPF utilizando tabelas de hash em vez de usar kube-proxy e iptables.

Deploy Cilium

Instale o Cilium CLI:

curl -L --remote-name-all <https://github.com/cilium/cilium-cli/releases/download/v0.12.4/cilium-linux-amd64.tar.gz>
sudo tar xzvfC cilium-linux-amd64.tar.gz /usr/local/bin
rm cilium-linux-amd64.tar.gz

Execute o seguinte comando para verificar o status do cluster:

kubectl get nodes

Você pode ver que os nodes estão no estado NotReady.

NAME                   STATUS     ROLES           AGE     VERSION
talos-k8s-master-1     NotReady   control-plane   3m57s   v1.25.4
talos-k8s-master-2     NotReady   <none>          3m22s   v1.25.4
talos-k8s-master-3     NotReady   <none>          2m58s   v1.25.4
talos-k8s-node-20466   NotReady   <none>          3m33s   v1.25.4
talos-k8s-node-46738   NotReady   <none>          3m45s   v1.25.4
talos-k8s-node-62943   NotReady   <none>          3m51s   v1.25.4

Isso por porque criamos o cluster Kubernetes sem um CNI, o qual é um plugin de rede.

Veja mais detalhes no link abaixo sobre CNI:

**https://kubernetes.io/pt-br/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/**


Caso não tenha o HELM instalado, faça sua instalação com Arkade, uma tool simples e muito útil, sendo considerado uma marketplace open source para desenvolvedores da seguinte forma:

curl -sLS <https://get.arkade.dev> | sh && \\
arkade get helm && \\
mv /root/.arkade/bin/helm /usr/local/bin/


Execute os seguintes comandos HELM para instalar o Cilium em nosso cluster.

helm repo add cilium <https://helm.cilium.io/> && helm repo update && \\
helm upgrade --install cilium cilium/cilium --version 1.12.5 \\
   --namespace kube-system \\
   --set kubeProxyReplacement=strict \\
   --set hostServices.enabled=false \\
   --set hostServices.protocols=tcp \\
   --set externalIPs.enabled=true \\
   --set nodePort.enabled=true \\
   --set hostPort.enabled=true \\
   --set bpf.masquerade=false \\
   --set image.pullPolicy=IfNotPresent \\
   --set ipam.mode=kubernetes