Contexte

Si une node d’un cluster Kubernetes change d’addresse IP, Kubectl ne fonctionnera plus correctement. La node ne ce provisionnera pas correctement et le cluster peut tomber en panne. Idéalement, l’IP ne devrait jamais changer.

Toutefois, si elle change, il faut re-créer la node. Il existe un article medium qui démontre les étapes à suivre. Voici les grandes lignes:

systemctl stop kubelet docker  
  
cd /etc/  
  
# backup old kubernetes data  
mv kubernetes kubernetes-backup  
mv /var/lib/kubelet /var/lib/kubelet-backup  
  
# restore certificates  
mkdir -p kubernetes  
cp -r kubernetes-backup/pki kubernetes  
rm kubernetes/pki/{apiserver.*,etcd/peer.*}  
  
systemctl start docker
 
# Il est peut-etre obliger d'executer ceci:
# kubeadm reset
 
# reinit master with data in etcd  
# add --kubernetes-version, --pod-network-cidr and --token options if needed  
kubeadm init --ignore-preflight-errors=DirAvailable--var-lib-etcd  
  
# update kubectl config  
cp kubernetes/admin.conf ~/.kube/config  
  
# wait for some time and delete old node  
sleep 120  
kubectl get nodes --sort-by=.metadata.creationTimestamp  
kubectl delete node $(kubectl get nodes -o jsonpath='{.items[?(@.status.conditions[0].status=="Unknown")].metadata.name}')  
  
# check running pods  
kubectl get pods --all-namespaces

References

  1. ip-address-changes-in-kubernetes-master-node-11527b867e88