---
# System prepended metadata

title: k8s - deployment CNI Flannel

---

função:
 Cada host em um cluster do flannel executa um agente chamado **flanneld**. Ele atribui a cada host uma sub-rede, que atua como o pool de endereços IP para contêineres em execução no host. Os contêineres podem contatar outros contêineres diretamente, usando seu endereço IP. O Flannel também suporta host-gw, que mapeia rotas diretas entre hosts de maneira semelhante ao Calico. 
 
 config:
 
 passo 1:
 permitir que o sistema operacional Linux faça chamadas ao iptables para processar pacotes de rede que passam por bridges.
 
     echo "net.bridge.bridge-nf-call-iptables=1" | sudo tee -a /etc/sysctl.conf
     
 aplicar configs:
 
    sudo sysctl -p

 passo 2:
 realizar o deployment do cni flannel
         
    wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    
    kubectl apply -f kube-flannel.yml

obs: o coreDns só estará em uso após o deployment do flannel

 passo 3:
 confirmar se está em uso
 
    kubectl get pods -n kube-system
    
    kubectl get namespace
    
    kubectl get all -n kube-flannel
    
    
 caso não esteja funcionando de inicio é recomando reiniciar o containerd e o kubelet:
     
    systemctl restart kubelet

    systemctl restart containerd

 se o erro ainda persistir pode refazer a instalção, mas é necessário excluir as configs anteriores:
     
     sudo kubeadm reset  #cuidado: esse comando reseta o node 

    sudo rm -r ~/.kube
    sudo  rm -r /etc/cni/net.d

    sudo ifconfig cni0 down
    sudo ifconfig flannel.1 down

    sudo ip link delete cni0
    sudo ip link delete flannel.1 #é recomendado verificar se as ethers de fato foram deletadas
    
video do deployment caso necessário: https://www.youtube.com/watch?v=UEUjz9wfyJ0&t=631s
