최신글

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

반응형

인증서 만료 오류

집에서 구축한 쿠버네티스에서 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

 

참고자료

반응형