Ir al contenido principal

Ubicación, Estructura y Manejo básico de certificados.

                                          

Kubernetes utiliza certificados TLS (X.509) para cifrar la comunicación entre sus componentes y autenticar identidades (usuarios, nodos, API Server, etc.). Estos certificados son generados y gestionados automáticamente cuando se instala un clúster con kubeadm.

En este artículo, veremos dónde se almacenan los certificados, cuál es su estructura y cómo inspeccionarlos fácilmente, una habilidad muy útil para el examen CKA.

Cuando creas un clúster con kubeadm, los certificados se generan por defecto en el directorio:

/etc/kubernetes/pki/

Puedes ver su contenido con:

ls -l /etc/kubernetes/pki/

También hay certificados en:

/etc/kubernetes/

(ahí verás admin.conf, kubelet.conf, etc., que incluyen certificados embebidos, como veremos más abajo).

🧱 Estructura de los certificados en /etc/kubernetes/pki

Aquí tienes una estructura común generada por kubeadm:



🔍 ¿Qué hace cada certificado?


📄 Cómo inspeccionar un certificado:

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

Algunos campos importantes que puedes revisar:

  • Subject: identifica al propietario del certificado (por ejemplo, CN=kube-apiserver)

  • Issuer: quién emitió el certificado (normalmente CN=kubernetes o CN=ca)

  • Not Before / Not After: fechas de validez

  • Subject Alternative Name (SAN): las IPs y dominios válidos para el certificado

  • Key Usage y Extended Key Usage: qué puede hacer el certificado (firma, cifrado, autenticación TLS)

🔧 Cómo ver el contenido de los .conf que usan certificados

Los archivos .conf como admin.conf, controller-manager.conf, etc. contienen los certificados y claves embebidos en base64.

Puedes inspeccionarlos así:

kubectl config view --kubeconfig=/etc/kubernetes/admin.conf

O ver directamente los bloques codificados:
grep certificate-authority-data /etc/kubernetes/admin.conf
grep client-certificate-data /etc/kubernetes/admin.conf

Para decodificarlos:
grep client-certificate-data /etc/kubernetes/admin.conf | awk '{print $2}' | base64 -d | openssl x509 -text -noout


📌 Buenas prácticas

  • Nunca compartas la clave privada ca.key: permite firmar nuevos certificados, ¡es muy sensible!

  • Guarda copias de seguridad de los certificados si gestionas entornos de producción.

  • Verifica que los certificados no estén caducados (openssl x509 -enddate ...).

  • Usa siempre certificados con la menor duración posible sin afectar operatividad.

🧪 Pregunta tipo CKA

Un worker nuevo no puede comunicarse con el API Server por error TLS. ¿Cómo verificarías si el certificado del API Server está bien configurado?

✅ Revisa /etc/kubernetes/pki/apiserver.crt con openssl, y asegúrate de que su SAN incluya la IP del API Server (192.168.X.X), y que esté dentro de la fecha de validez.

Comprender dónde están, cómo están organizados y cómo inspeccionar los certificados de Kubernetes es esencial tanto para el día a día como para superar el examen CKA. En el próximo capítulo veremos cómo renovar o rotar estos certificados de forma segura con kubeadm.

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...