Renouvellement Certificat Kubernetes

Renouvellement Certificat Kubernetes

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.

joel

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.