전공영역 공부 기록

쿠버네티스 인증서 만료된 상태에서 인증서 갱신

악분 2022. 11. 29. 20:35
반응형

인증서 만료 오류

집에서 구축한 쿠버네티스에서 kubectl명령어를 치니 오류메세지가 출력되었습니다. 오류 메세지를 보자마자… 인증서 갱신날짜가 지난 것을 바로 눈치챘습니다. 저는 kubeadm으로 쿠버네티스를 설치해서 쉽게 인증서를 갱신할 수 있었습니다.

Unable to authenticate the request due to an error: x509: certificate has expired or is not yet valid

 

인증서 갱신

인증서 갱신을 위해 기존 인증서를 다른 위치로 백업하거나 삭제해줘야 합니다. 집에서 구축한 서버여서 기존 인증서는 백업하지 않고 바로 삭제 했습니다.

$ cd /etc/kubernetes/pki
$ sudo rm -rf apiserver.key
$ sudo rm -rf apiserver.crt
$ sudo rm -rf apiserver-kubelet-client.key
$ sudo rm -rf apiserver-kubelet-client.crt
$ sudo rm -rf apiserver-etcd-client.key
$ sudo rm -rf apiserver-etcd-client.cr

 

kubeadm명령어로 인증서를 갱신합니다.

$ sudo kubeadm init phase certs apiserver --apiserver-cert-extra-sans '{control plane IP}'
$ sudo kubeadm init phase certs apiserver-kubelet-client
$ sudo kubeadm init phase certs apiserver-etcd-client

 

쿠버네티스 컴퍼넌트에게 갱신된 인증서를 적용합니다.

$ sudo kubeadm init phase kubeconfig admin
$ sudo kubeadm init phase kubeconfig kubelet
$ sudo kubeadm init phase kubeconfig controller-manager
$ sudo kubeadm init phase kubeconfig scheduler

 

그리고 쿠버네티스 컴퍼넌트 프로세스를 종료하고 kubelet을 재부팅합니다.

$ sudo kill -s SIGHUP $(pidof kube-apiserver)
$ sudo kill -s SIGHUP $(pidof kube-controller-manager)
$ sudo kill -s SIGHUP $(pidof kube-scheduler)
$ sudo systemctl restart kubelet

 

갱신된 kubeconfig를 홈디렉터리 경로로 복사합니다.

cp /etc/kubernetes/admin.conf $HOME/.kube/config

 

이제 kubectl 명령어가 잘 실행됩니다.

kubectl get no

 

참고자료

반응형