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.
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