概要
このドキュメントでは、Cisco 5G RCM(Redundancy Configuration Manager)でKubernetes証明書を更新する手順について説明します。
前提条件
RCMハイアベイラビリティ設定の場合は、最初にスタンバイRCMでプロシージャを実行してから、スイッチオーバーを実行し、新しいスタンバイRCMでプロシージャを実行する必要があります。使用可能なRCMハイアベイラビリティがない場合、証明書の更新プロセスの一部であるRCMのリブート中は、UP冗長性は使用できません。
証明書が期限切れかどうかを確認します
証明書の期限が切れているかどうかを確認するには、sudo kubeadm alpha certs check-expirationを実行します。
ubuntu@rcm:~$ sudo kubeadm alpha certs check-expiration
CERTIFICATE EXPIRES RESIDUAL TIME EXTERNALLY MANAGED
admin.conf Oct 31, 2024 03:34 UTC <invalid> no
apiserver Oct 31, 2024 03:34 UTC <invalid> no
apiserver-etcd-client Oct 31, 2024 03:34 UTC <invalid> no
apiserver-kubelet-client Oct 31, 2024 03:34 UTC <invalid> no
controller-manager.conf Oct 31, 2024 03:34 UTC <invalid> no
etcd-healthcheck-client Oct 31, 2024 03:34 UTC <invalid> no
etcd-peer Oct 31, 2024 03:34 UTC <invalid> no
etcd-server Oct 31, 2024 03:34 UTC <invalid> no
front-proxy-client Oct 31, 2024 03:34 UTC <invalid> no
scheduler.conf Oct 31, 2024 03:34 UTC <invalid> no
証明書の更新
証明書を更新するには、sudo kubeadm alpha certs renew allを実行します。
ubuntu@rcm:~$ sudo kubeadm alpha certs renew all
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 healtcheck 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
証明書が更新されているかどうかを再度確認します
sudo kubeadm alpha certs check-expirationを実行して、証明書が更新されているかどうかを確認します。
ubuntu@rcm:~$ sudo kubeadm alpha certs check-expiration
CERTIFICATE EXPIRES RESIDUAL TIME EXTERNALLY MANAGED
admin.conf Nov 01, 2025 03:34 UTC 364d no
apiserver Nov 01, 2025 03:34 UTC 364d no
apiserver-etcd-client Nov 01, 2025 03:34 UTC 364d no
apiserver-kubelet-client Nov 01, 2025 03:34 UTC 364d no
controller-manager.conf Nov 01, 2025 03:34 UTC 364d no
etcd-healthcheck-client Nov 01, 2025 03:34 UTC 364d no
etcd-peer Nov 01, 2025 03:34 UTC 364d no
etcd-server Nov 01, 2025 03:34 UTC 364d no
front-proxy-client Nov 01, 2025 03:34 UTC 364d no
scheduler.conf Nov 01, 2025 03:34 UTC 364d no
kubelet.confの変更
kubeadmバージョン1.17より前では、kubelet.confを手動で変更する必要があります。client-certificate-dataとclient-key-dataを次に置き換えます。
/etc/kubernetes/kubelet.conf
client-certificate:/var/lib/kubelet/pki/kubelet-client-current.pem
client-key: /var/lib/kubelet/pki/kubelet-client-current.pem
admin.confのコピー
admin.confをコピーして.kube/configを上書きします。
sudo cp /etc/kubernetes/admin.conf ~/.kube/config
システムをリブートします。
sudo reboot
kubectlコマンドが機能するかどうかを確認します
リブート後、kubectlコマンドが正常に動作するかどうかを確認します。
ubuntu@rcm:~$ kubectl get node
NAME STATUS ROLES AGE VERSION
rcm Ready master,oam 16d v1.15.12