인증서 교체 후 kubelet 인증서 관리자 실패

인증서 교체 후 kubelet 인증서 관리자 실패

오늘 우리 연구실 k8s 클러스터는 클러스터 작업을 허용하지 않았습니다. 파헤쳐 보니 인증서가 만료되었기 때문이었습니다.

인증서와 구성을 다시 생성했지만 kubelet을 다시 시작하면 여전히 connection refusedapiserver에 연결됩니다. apiserver가 실행 중이지만 포트 6443이 열려 있지 않습니다. 로그를 디버깅할 때 출력에 다음 오류가 표시됩니다(빨간 청어일 수도 있지만 확실하지는 않음).

Current certificate CN (system:node:lab-02) does not match requested CN (system:node:control-plane-xm2c9)

생성된 클러스터 입니다 kubeadm. 나는 kubeadmCA를 제외한 모든 인증서를 재생성하곤 했습니다. 다음 명령이 사용되었습니다.

# kubeadm init phase certs apiserver --apiserver-cert-extra-sans control-plane-xm2c9 --apiserver-advertise-address 192.168.2.78
# kubeadm init phase certs apiserver-etcd-client
# kubeadm init phase certs apiserver-kubelet-client

다음을 사용하여 구성을 만들었습니다.

# kubeadm init phase kubeconfig admin --apiserver-advertise-address 192.168.2.78
# kubeadm init phase kubeconfig kubelet  --apiserver-advertise-address 192.168.2.78
# kubeadm init phase kubeconfig controller-manager --apiserver-advertise-address 192.168.2.78
# kubeadm init phase kubeconfig scheduler --apiserver-advertise-address 192.168.2.78

아직도 로그를 살펴보는 중이에요. 이것이 내 문제의 근본 원인이라고 생각하지만 어떻게 해결해야 할지 모르겠습니다. 어떤 도움이라도 좋을 것입니다! 티아

답변1

내가 올바르게 기억한다면 문제는 위에서 언급한 명령이 업데이트되지 않았지만 필수라는 인증서가 있다는 것입니다. 인증서 였습니다 sa. 다행히도 이 작업을 시작하기 전에 모든 인증서를 백업했는데 /var/tmp인증서 sa가 거기에 있었고 여전히 유효했습니다. sa인증서를 다시 인증서 디렉터리에 복사하고 다시 시작하면 kubelet모든 것이 다시 작동했습니다.

관련 정보