Kubernetes

Removendo um control plane do etcd depois de excluir o node

se você excluir um node de control plane e receber este erro ao recriá-lo

error execution phase check-etcd: etcd cluster is not healthy: failed to dial endpoint https://10.10.0.3:2379 with maintenance client: context deadline exceeded

você precisa remover o node antigo do etcd. para isso, conecte-se a outro control plane e faça o seguinte:

  1. liste todos os nodes e copie o id do node excluído
$ kubectl exec node01 -n kube-system -- etcdctl --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/peer.crt --key /etc/kubernetes/pki/etcd/peer.key member list
36f7f01d71a2114, started, node01, https://10.10.0.1:2380, https://10.10.0.1:2379, false
22fa48691f987ab9, started, node02, https://10.10.0.2:2380, https://10.10.0.2:2379, false
4bad0a237bfeb2c6, started, node03, https://10.10.0.3:2380, https://10.10.0.3:2379, false

neste caso, o node antigo é node03, com id 4bad0a237bfeb2c6.

  1. remova-o
$ kubectl exec etcd-prd-sms-dc03-z2-kubernetes-controlplane04 -n kube-system -- etcdctl --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/peer.crt --key /etc/kubernetes/pki/etcd/peer.key member remove 4bad0a237bfeb2c6
Member 4bad0a237bfeb2c6 removed from cluster d64f0c95b8a1f61d