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 refused
al 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 kubeadm
clú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 sa
certificado. Afortunadamente, antes de comenzar a trabajar en esto, hice una copia de seguridad de todos los certificados /var/tmp
y el sa
certificado estaba allí y seguía siendo válido. Cuando copié el sa
certificado nuevamente en el directorio de certificados y reinicié, kubelet
todo funcionó nuevamente.