마스터 노드 서버를 k8s 그룹에서 제거하고 다시 가입

2452 단어

배경


1대의 마스터가 집단에 가입한 후 호스트 이름을 수정하는 것을 잊어버렸고 k8s 집단에서 노드 호스트 이름을 수정하는 것은 매우 번거롭기 때문에 마스터를 집단에서 탈퇴하고 이름을 바꾸고 다시 집단에 가입하는 것이 낫다(전제는 고가용 집단을 사용한다).

작업 단계


ssh는 다른 마스터 노드에 로그인하여 이름을 바꿀 마스터 노드를 그룹으로 이동합니다.
kubectl drain blog-k8s-n0
kubectl delete node blog-k8s-n0

그룹이 종료된 마스터 서버에 로그인하여 쿠블렛 설정을 재설정하고 그룹에 다시 가입합니다.
kubeadm reset
kubeadm join k8s-api:6443 --token ****** \
    --discovery-token-ca-cert-hash ****** \
    --control-plane --certificate-key ****** \
    --v=5

가입 실패, 오류 정보는 다음과 같습니다.
I0109 21:26:48.440711    3893 etcd.go:107] etcd endpoints read from pods: https://10.0.1.81:2379,https://10.0.1.32:2379,https://10.0.1.33:2379
I0109 21:26:48.455921    3893 etcd.go:166] etcd endpoints read from etcd: https://10.0.1.81:2379,https://10.0.1.32:2379,https://10.0.1.33:2379
I0109 21:26:48.455975    3893 etcd.go:125] update etcd endpoints: https://10.0.1.81:2379,https://10.0.1.32:2379,https://10.0.1.33:2379
I0109 21:27:08.469938    3893 etcd.go:388] Failed to get etcd status for https://10.0.1.81:2379: failed to dial endpoint https://10.0.1.81:2379 with maintenance client: context deadline exceeded
failed to dial endpoint https://10.0.1.81:2379 with maintenance client: context deadline exceeded
etcd cluster is not healthy

오류 정보를 보면 etcd 집단은 10.0.1.81이 k8s 집단에서 탈퇴한 것을 알 수 없습니다. etcd 집단에는 10.0.1.81의 정보가 저장되어 있기 때문에 가입할 때 10.0.1.81을 연결하는 데 실패했습니다.
그 중 정상적인 마스터에 로그인하여 etcd 용기에 들어갑니다.
docker exec -it $(docker ps -f name=etcd_etcd -q) /bin/sh

etcd 집단의 구성원 목록을 보십시오. 과연 집단에서 탈퇴한 서버가 있습니다blog-k8s-n0
$ etcdctl --endpoints 127.0.0.1:2379 --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/server.crt --key /etc/kubernetes/pki/etcd/server.key member list
12637f5ec2bd02b8, started, blog-k8s-n0, https://10.0.1.81:2380, https://10.0.1.81:2379, false
17d58f8d29164d23, started, k8s-master1, https://10.0.1.32:2380, https://10.0.1.32:2379, false
19441808830db070, started, k8s-master2, https://10.0.1.33:2380, https://10.0.1.33:2379, false

용기에서 이 서버를 etcd 그룹에서 제거합니다
etcdctl --endpoints 127.0.0.1:2379 --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/server.crt --key /etc/kubernetes/pki/etcd/server.key member remove 12637f5ec2bd02b8

제거하기 전에 그룹을 종료한 서버는 그룹에 성공적으로 가입할 수 있습니다.

좋은 웹페이지 즐겨찾기