Ir al contenido principal

馃攣 Renovaci贸n y Rotaci贸n de Certificados en Kubernetes (kubeadm certs)

 

馃幆 Introducci贸n

En un cl煤ster de Kubernetes, la mayor铆a de los certificados generados por kubeadm tienen una validez de un a帽o. Para evitar interrupciones en los componentes cr铆ticos, es fundamental revisar peri贸dicamente su vigencia y saber c贸mo renovarlos correctamente.

En este art铆culo aprender谩s:

  • C贸mo comprobar la expiraci贸n de los certificados

  • C贸mo renovarlos autom谩ticamente con kubeadm

  • C贸mo simular una renovaci贸n manual con openssl

  • C贸mo aplicar los cambios reiniciando los componentes afectados


馃暤️‍♂️ Comprobaci贸n del estado de los certificados

Kubernetes ofrece una herramienta integrada para revisar los certificados del cl煤ster:

kubeadm certs check-expiration

Este comando muestra informaci贸n clave:

  • Fecha de expiraci贸n

  • Tipo de certificado

  • Ruta en el sistema

馃搶 Salida de ejemplo:

CERTIFICATE EXPIRES RESIDUAL TIME CERTIFICATE AUTHORITY apiserver Jan 06, 2026 19:56 UTC 330d ca apiserver-kubelet-client Jan 06, 2026 19:56 UTC 330d ca

馃搷 Ubicaci贸n de los certificados a renovar

Los certificados generados por kubeadm est谩n en:

/etc/kubernetes/pki/

Ejemplo:

  • /etc/kubernetes/pki/apiserver.crt → Certificado TLS del API Server

  • /etc/kubernetes/pki/apiserver.key → Clave privada

  • /etc/kubernetes/pki/ca.crt y ca.key → CA usada para firmarlos


馃攧 Renovaci贸n autom谩tica con kubeadm

Para renovar los certificados del cl煤ster autom谩ticamente:

sudo kubeadm certs renew all

Tambi茅n puedes renovar certificados de forma individual:

sudo kubeadm certs renew apiserver

Esto genera nuevos certificados con nuevas fechas de expiraci贸n, reutilizando las claves privadas existentes.

⚠️ Nota: Tras renovar, es recomendable reiniciar los componentes afectados si no se reinician autom谩ticamente.


馃敡 Renovaci贸n manual con OpenSSL (simulaci贸n para el CKA)

Para prop贸sitos educativos o simulaciones (como en el ejercicio del examen), tambi茅n puedes generar y firmar certificados manualmente.

✅ Paso 1: Revisar el certificado actual

openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text -noout

Busca:

  • Not After: Fecha de expiraci贸n

  • Issuer: Emisor (normalmente la CA del cl煤ster)

  • Subject: Identidad del servicio (CN=kube-apiserver)


✅ Paso 2: Crear un nuevo CSR (Certificate Signing Request)

Utilizando la misma clave privada:

openssl req -new -key /etc/kubernetes/pki/apiserver.key \ -out /tmp/apiserver.csr -subj "/CN=kube-apiserver"

✅ Paso 3: Firmar el CSR con la CA del cl煤ster

openssl x509 -req -in /tmp/apiserver.csr \ -CA /etc/kubernetes/pki/ca.crt \ -CAkey /etc/kubernetes/pki/ca.key \ -CAcreateserial \ -out /etc/kubernetes/pki/apiserver.crt \ -days 365 -sha256

Esto reemplaza el certificado anterior por uno nuevo firmado por la misma CA.

⚠️ Importante: No cambies el Subject ni el SAN, o el API Server no arrancar谩 correctamente. Para agregar SANs en una renovaci贸n manual, necesitar铆as usar un archivo de configuraci贸n externo (-extfile).


馃攣 Paso 4: Reiniciar el API Server

Si el API Server es un Static Pod (como en la mayor铆a de cl煤steres kubeadm), se reiniciar谩 autom谩ticamente si detecta cambios en su certificado.

Verifica con:

docker ps | grep kube-apiserver # o si usas containerd: crictl ps | grep kube-apiserver

Puedes borrar el contenedor para forzar el reinicio:

docker rm -f <container_id> # o crictl rm <container_id>

馃И Paso 5: Verificar el resultado

Una vez reiniciado, comprueba que el cl煤ster est谩 operativo y que el nuevo certificado est谩 en uso:

kubectl get componentstatuses kubectl get nodes

Y revisa de nuevo el certificado para ver su nueva fecha de expiraci贸n:

openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text -noout

馃摑 Pregunta tipo examen (resumen)

Necesitas renovar el certificado del API Server manualmente y verificar que est茅 en uso.

Pasos esperados:

  1. Revisas el certificado actual con openssl

  2. Generas un CSR con la clave existente

  3. Firmas el nuevo certificado con la CA del cl煤ster

  4. Reemplazas el .crt

  5. Reinicias el API Server (static pod)

  6. Compruebas que est谩 activo y el nuevo certificado en uso


Comentarios

Entradas populares de este blog

Autenticaci贸n y Autorizaci贸n (Kubernetes).

La autenticaci贸n en Kubernetes es un aspecto cr铆tico para la seguridad y control de acceso dentro de un cl煤ster. Kubernetes proporciona varios mecanismos de autenticaci贸n para usuarios y cuentas de servicio, que deben pasar a trav茅s del API Server para realizar cualquier operaci贸n. En este art铆culo, revisaremos c贸mo funciona la autenticaci贸n y c贸mo puedes usar herramientas como kubectl y curl para interactuar de manera segura con el cl煤ster. En primer lugar, ¿Qu茅 es la autenticaci贸n y la autorizaci贸n? •     Autenticaci贸n:  Es el proceso de verificar qui茅n es un usuario. Responde a la pregunta "¿Qui茅n eres?". •     Autorizaci贸n: El proceso de determinar qu茅 acciones puede realizar un usuario autenticado. Responde a la pregunta "¿Qu茅 puedes hacer?". Primer paso: Autenticaci贸n. La autenticaci贸n en Kubernetes es el proceso mediante el cual el sistema verifica la identidad de los usuarios y cuentas de servicio que intentan acceder al cl煤ster.  ...

Tip 1. Ex谩men CKA. Economiza y optimiza tu tiempo; Usa --help con el paginador Less en la ayuda.

馃摌 Domina los comandos --help y el uso de less en el examen CKA Durante el examen CKA (Certified Kubernetes Administrator) , uno de los recursos m谩s potentes y completamente permitidos es el uso del --help en los comandos de Kubernetes. Adem谩s, puedes combinarlo con el paginador less para buscar y navegar f谩cilmente entre opciones. ✅ ¿Est谩 permitido usar --help ? S铆, est谩 100% permitido . Puedes usar el --help de cualquier comando disponible en el entorno del examen: kubectl --help kubeadm init --help kubelet --help kubectl explain pod.spec.containers Estos comandos muestran la ayuda y las opciones disponibles directamente desde el sistema, sin necesidad de ir a la documentaci贸n. 馃攳 ¿C贸mo usar less para buscar r谩pidamente? Cuando la salida del comando es larga, puedes usar | less para verla de forma paginada y navegar m谩s c贸modamente. kubeadm init --help | less Una vez dentro de less , puedes buscar cualquier texto escribiendo /texto . Por ejemplo: /pod-networ...

TLS Bootstrapping en Kubernetes: Qu茅 es, c贸mo funciona y por qu茅 importa en el examen CKA

                                                       Uno de los conceptos que a menudo pasan desapercibidos en la administraci贸n de Kubernetes —pero que resultan clave tanto en entornos reales como en el examen CKA— es el TLS Bootstrapping . En este art铆culo entender谩s qu茅 es, c贸mo funciona, qu茅 lo diferencia del kubeadm join tradicional y c贸mo puede aparecer en el examen. ¿Qu茅 es TLS Bootstrapping? TLS Bootstrapping es el proceso por el cual el kubelet , el agente que corre en cada nodo, obtiene autom谩ticamente un certificado TLS firmado por el cl煤ster para autenticarse con el kube-apiserver . En otras palabras: permite que un nuevo nodo se una de forma segura al cl煤ster sin necesidad de copiar manualmente los certificados. ¿Por qu茅 es necesario? Cuando a帽ades un nuevo nodo worker, su kubelet necesita autentic...