Si vous avez un cluster kubernetes vous allez rapidement vous trouver dans cette situation de certificat expiré. Vous pouvez utiliser une CA externe ou interne pour faire le renouvellement. Nous allons aborder uniquement le cas d’une CA INTERNE dans notre article.
Il faut commencer par ce connecter sur l’ensemble des masters car les commandes suivantes doivent être réalisé sur l’ensemble des masters les un a la suite des autres.
root@kub1: cp -r /etc/kubernetes /etc/kubernetes.old
root@kub1:/home/joel# 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 Jun 14, 2023 08:22 UTC 281d ca no
apiserver Jun 14, 2023 08:22 UTC 281d ca no
apiserver-etcd-client Jun 14, 2023 08:22 UTC 281d etcd-ca no
apiserver-kubelet-client Jun 14, 2022 08:22 UTC 1d ca no
controller-manager.conf Jun 14, 2023 08:22 UTC 281d ca no
etcd-healthcheck-client Jun 14, 2023 08:22 UTC 281d etcd-ca no
etcd-peer Jun 14, 2023 08:22 UTC 281d etcd-ca no
etcd-server Jun 14, 2023 08:22 UTC 281d etcd-ca no
front-proxy-client Jun 14, 2023 08:22 UTC 281d front-proxy-ca no
scheduler.conf Jun 14, 2023 08:22 UTC 281d ca no
CERTIFICATE AUTHORITY EXPIRES RESIDUAL TIME EXTERNALLY MANAGED
ca Jun 11, 2032 08:22 UTC 9y no
etcd-ca Jun 11, 2032 08:22 UTC 9y no
front-proxy-ca Jun 11, 2032 08:22 UTC 9y no
La commande vous liste l’ensemble des certificat utilisé actuellement par kubernetes. En fonction de votre version de kubernetes vous pouvez avoir besoin d’utiliser la sous commande alpha (kubeadm alpha certs check-expiration) vous pouvez soit renouveler un certificat en particulier qui aurait expiré:
root@kub1:/home/joel# kubeadm certs renew apiserver-kubelet-client
ou alors renouveler l’ensemble des certificats.
root@kub1:/home/joel# kubeadm certs renew all
Je vous conseille de ne renouveler tous les certificats uniquement si cela est vraiment nécessaire sinon renouvelé ceux qui sont sur le point d’expirer ou qui ont expirés. On vérifie bien que la date d’expiration à changé.
root@kub1:/home/joel# kubeadm certs check-expiration | grep apiserver-kubelet-client
CERTIFICATE EXPIRES RESIDUAL TIME CERTIFICATE AUTHORITY EXTERNALLY MANAGED
apiserver-kubelet-client Jun 14, 2023 08:22 UTC 281d ca no
Redémarré ensuite à tour de rôle les masters afin de vider les caches et qu’ils prennent en compte les nouveaux certificats.
Si après le reboot des masters, les workers ne sont plus en etat ready cela est possiblement du au fait que leurs identifiants de connexion ne sont plus valide. Régénéré un token de connexion depuis l’un des masters, en tapant la commande suivante sur l’un des master :
root@kub1: kubeadm token create --print-join-command
et rajouter à nouveau les workers en erreur au cluster. En tappant la commande suivant sur les workers en erreur.
root@kub2-worker: sudo kubeadm join "ip_dun_master":6443 --token="token_genere_precedement" --discovery-token-ca-cert-hash "sha256:certHash"* --ignore-preflight-errors=all
Voila vous pouvez maintenant rebooter les workers qui étaient en erreur et que vous avez de réintégré au cluster.
Laisser un commentaire