Fallo del administrador de certificados de Kubelet después de la rotación de certificados

Fallo del administrador de certificados de Kubelet después de la rotación de certificados

Hoy nuestro clúster de laboratorio k8s dejó de permitir trabajar en el clúster. Cuando profundicé, fue porque los certificados expiraron.

Regeneré los certificados y las configuraciones, pero cuando reinicio kubelet, todavía llegamos connection refusedal apiserver. El apiserver se está ejecutando, pero el puerto 6443 no está abierto. Al depurar registros, aparece el siguiente error en el resultado (tal vez una pista falsa, pero no estoy seguro):

Current certificate CN (system:node:lab-02) does not match requested CN (system:node:control-plane-xm2c9)

Este es un kubeadmclúster creado. Solía kubeadm​​​​generar todos los certificados (excepto el CA). Se utilizaron los siguientes comandos:

# kubeadm init phase certs apiserver --apiserver-cert-extra-sans control-plane-xm2c9 --apiserver-advertise-address 192.168.2.78
# kubeadm init phase certs apiserver-etcd-client
# kubeadm init phase certs apiserver-kubelet-client

Creé las configuraciones con:

# kubeadm init phase kubeconfig admin --apiserver-advertise-address 192.168.2.78
# kubeadm init phase kubeconfig kubelet  --apiserver-advertise-address 192.168.2.78
# kubeadm init phase kubeconfig controller-manager --apiserver-advertise-address 192.168.2.78
# kubeadm init phase kubeconfig scheduler --apiserver-advertise-address 192.168.2.78

Todavía estoy revisando los registros. Creo que esta es la raíz de mi problema, pero no estoy seguro de cómo resolverlo. ¡Cualquier ayuda sería genial! tia

Respuesta1

El problema, si no recuerdo mal, era que había un certificado de que los comandos mencionados anteriormente no se actualizaban pero eran necesarios. Fue el sacertificado. Afortunadamente, antes de comenzar a trabajar en esto, hice una copia de seguridad de todos los certificados /var/tmpy el sacertificado estaba allí y seguía siendo válido. Cuando copié el sacertificado nuevamente en el directorio de certificados y reinicié, kubelettodo funcionó nuevamente.

información relacionada