kubeadm 관리형 인증서 수동 갱신
문제
kubeadm 관리 인증서는 배포 후 1년 후에 만료된다. 인증서가 만료되면 Pod가 실행되지 않고 로그에 잘못된 인증서 오류가 표시됩니다.
솔루션
Paragon Automation Kubernetes 클러스터는 자체 생성된 kubeadm 관리 인증서를 사용합니다. 이러한 인증서는 Kubernetes 버전을 업그레이드하거나 인증서를 수동으로 갱신하지 않는 한 배포 후 1년 후에 만료됩니다.
다음 단계에 따라 인증서를 수동으로 갱신합니다.
-
클러스터의 각 기본 노드에서 명령을 사용하여
kubeadm certs check-expiration
현재 인증서 만료 날짜를 확인합니다.root@primary1-node:~# kubeadm certs check-expiration [check-expiration] Reading configuration from the cluster... [check-expiration] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml' CERTIFICATE EXPIRES RESIDUAL TIME CERTIFICATE AUTHORITY EXTERNALLY MANAGED admin.conf Dec 13, 2023 13:20 UTC 328d no apiserver Dec 13, 2023 13:20 UTC 328d ca no apiserver-etcd-client Dec 13, 2023 13:20 UTC 328d etcd-ca no apiserver-kubelet-client Dec 13, 2023 13:20 UTC 328d ca no controller-manager.conf Dec 13, 2023 13:20 UTC 328d no etcd-healthcheck-client Dec 13, 2023 13:20 UTC 328d etcd-ca no etcd-peer Dec 13, 2023 13:20 UTC 328d etcd-ca no etcd-server Dec 13, 2023 13:20 UTC 328d etcd-ca no front-proxy-client Dec 13, 2023 13:20 UTC 328d front-proxy-ca no scheduler.conf Dec 13, 2023 13:20 UTC 328d no CERTIFICATE AUTHORITY EXPIRES RESIDUAL TIME EXTERNALLY MANAGED ca Nov 27, 2032 21:31 UTC 9y no etcd-ca Nov 27, 2032 21:31 UTC 9y no front-proxy-ca Nov 27, 2032 21:31 UTC 9y no
-
인증서를 갱신하려면 Kubernetes 클러스터의 각 기본 노드에서 명령을 사용합니다
kubeadm certs renew all
.root@primary1-node:~# kubeadm certs renew all [renew] Reading configuration from the cluster... [renew] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml' certificate embedded in the kubeconfig file for the admin to use and for kubeadm itself renewed certificate for serving the Kubernetes API renewed certificate the apiserver uses to access etcd renewed certificate for the API server to connect to kubelet renewed certificate embedded in the kubeconfig file for the controller manager to use renewed certificate for liveness probes to healthcheck etcd renewed certificate for etcd nodes to communicate with each other renewed certificate for serving etcd renewed certificate for the front proxy client renewed certificate embedded in the kubeconfig file for the scheduler manager to use renewed Done renewing certificates. You must restart the kube-apiserver, kube-controller-manager, kube-scheduler and etcd, so that they can use the new certificates.
-
클러스터의 각 기본 노드에서 명령을 사용하여
kubeadm certs check-expiration
만료 날짜를 다시 확인합니다.root@primary1-node:~# kubeadm certs check-expiration [check-expiration] Reading configuration from the cluster... [check-expiration] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml' CERTIFICATE EXPIRES RESIDUAL TIME CERTIFICATE AUTHORITY EXTERNALLY MANAGED admin.conf Jan 18, 2024 21:40 UTC 364d no apiserver Jan 18, 2024 21:40 UTC 364d ca no apiserver-etcd-client Jan 18, 2024 21:40 UTC 364d etcd-ca no apiserver-kubelet-client Jan 18, 2024 21:40 UTC 364d ca no controller-manager.conf Jan 18, 2024 21:40 UTC 364d no etcd-healthcheck-client Jan 18, 2024 21:40 UTC 364d etcd-ca no etcd-peer Jan 18, 2024 21:40 UTC 364d etcd-ca no etcd-server Jan 18, 2024 21:40 UTC 364d etcd-ca no front-proxy-client Jan 18, 2024 21:40 UTC 364d front-proxy-ca no scheduler.conf Jan 18, 2024 21:40 UTC 364d no CERTIFICATE AUTHORITY EXPIRES RESIDUAL TIME EXTERNALLY MANAGED ca Nov 27, 2032 21:31 UTC 9y no etcd-ca Nov 27, 2032 21:31 UTC 9y no front-proxy-ca Nov 27, 2032 21:31 UTC 9y no
-
새 인증서를 사용하려면 기본 노드 중 하나에서 다음 Pod를 다시 시작합니다.
root@primary1-node:~# kubectl delete pod -n kube-system -l component=kube-apiserver root@primary1-node:~# kubectl delete pod -n kube-system -l component=kube-scheduler root@primary1-node:~# kubectl delete pod -n kube-system -l component=kube-controller-manager root@primary1-node:~# kubectl delete pod -n kube-system -l component=etcd