error execution phase check-etcd: etcd cluster is not healthy: failed to dial endpoint

error execution phase check-etcd: etcd cluster is not healthy: failed to dial endpoint 

위 에러가 kubernetes에서 발생하면 기존 master node가 etcd에서 제거되지 않아 충돌하는 경우가 있다.
그러므로 etcd member 제거를 진행한다.

ETCD Pod 이름찾기

ETCD POD 이름을 찾기 위해 아래 명령어를 입력해 list를 출력한다.

 kubectl get pod -n kube-system

그러면 etcd-{마스터노드명} 형태로된 pod 이름을 찾을 수 있다.
정상 작동중인 master node의 etcd pod 이름을 복사해두고 해당 pod shell로 진입하도록 한다.

ETCD Member 삭제

먼저 ETCD Pod Shell로 이동한다.

kubectl exec -it etcd-{마스터노드명} -n kube-system -- sh

ETCD Pod Shell에서 아래 명령어 통해 제거를 원하는 member(제거 원하는 마스터 노드) 번호를 찾는다.

 etcdctl --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/peer.crt --key=/etc/kubernetes/pki/etcd/peer.key  member list

출력된 내용 중 제일 왼쪽에 뜨는 member ID를 복사하고 아래 명령어를 통해 ETCD Memeber를 제거한다.

 etcdctl --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/peer.crt --key=/etc/kubernetes/pki/etcd/peer.key  member remove {ETCD Memeber ID}

이후 새로 추가하려는 Master Node의 PC로가서 Kubernetes kubeadm을 reset하고 ~/.kube 폴더를 삭제한 뒤 다시 노드를 추가해보도록 한다.

Leave a Comment