Ir al contenido principal

Despliegue Básico de un Clúster Kubernetes: Guía Paso a Paso

Esta guía te mostrará cómo desplegar un clúster Kubernetes básico en un entorno de prueba. Asumiremos que tienes al menos dos máquinas virtuales o servidores con sistemas operativos Linux (Ubuntu, Debian, CentOS, etc.) configurados y accesibles por SSH. Una máquina actuará como el nodo maestro y las otras como nodos trabajadores.

Requisitos Previos

  • Dos o más servidores/máquinas virtuales: Preferiblemente con al menos 2 GB de RAM y suficiente espacio en disco.
  • Acceso SSH: Con usuario con privilegios de administrador (sudo).
  • Conexión de red: Asegúrate de que los servidores puedan comunicarse entre sí.
  • Conocimientos básicos de la línea de comandos Linux.

Paso 1: Configuración de las Instancias

Antes de instalar Kubernetes, debemos preparar las instancias para la instalación. Esto implica actualizar los paquetes del sistema y instalar las herramientas necesarias.

sudo apt update sudo apt upgrade -y sudo apt install -y curl iptables ca-certificates conntrack socat 

Estos comandos actualizan la lista de paquetes disponibles, actualizan los paquetes instalados a sus versiones más recientes y luego instalan las herramientas esenciales para la funcionalidad de red y seguridad.

Paso 2: Instalación de Docker y Kubernetes

Ahora, instalaremos Docker y los componentes de Kubernetes en todos los nodos. Comenzaremos con Docker, que es el Container Runtime predeterminado para Kubernetes.

curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo systemctl start docker sudo systemctl enable docker 

Este script descarga la última versión de Docker, la instala, inicia el servicio Docker y lo habilita para que se inicie automáticamente al inicio del sistema.

A continuación, instalaremos los componentes de Kubernetes:

curl -fsSL https://get.k8s.io -o get-k8s.sh sudo sh get-k8s.sh sudo apt update && sudo apt install -y kubelet kubeadm kubectl sudo systemctl enable kubelet 

Este script descarga e instala kubelet, kubeadm y kubectl. kubelet es el agente que se ejecuta en cada nodo, kubeadm es la herramienta de línea de comandos para inicializar y administrar clústeres Kubernetes, y kubectl es la herramienta de línea de comandos para interactuar con el clúster Kubernetes.

Paso 3: Inicialización del Clúster Maestro

En el nodo maestro, inicializaremos el clúster Kubernetes. Antes de ejecutar el comando, reemplaza <MASTER_NODE_PUBLIC_IP> con la dirección IP pública del nodo maestro.

sudo kubeadm init 

O, para especificar la dirección del servidor de API:

sudo kubeadm init --apiserver-advertise-address=<MASTER_NODE_PUBLIC_IP> 

Este comando inicializa el clúster y genera un token que se utilizará para agregar nodos trabajadores. Guarda esta información, ya que la necesitarás en el siguiente paso. También se mostrará una configuración para configurar kubectl. Cópiala y ejecútala en tu máquina local para poder interactuar con el clúster.

Paso 4: Agregar Nodos Trabajadores al Clúster

En cada nodo trabajador, SSH y ejecuta el siguiente comando, reemplazando <MASTER_NODE_PUBLIC_IP> con la dirección IP pública del nodo maestro, <TOKEN> con el token generado en el paso anterior y <HASH> con el hash SHA256 de la CA. Esta información se proporciona en la salida del comando kubeadm init en el nodo maestro.

sudo kubeadm join <MASTER_NODE_PUBLIC_IP>:6443 --token <TOKEN> --discovery-token-ca-cert-hash sha256:<HASH> 

Este comando agrega el nodo trabajador al clúster y lo configura para comunicarse con el nodo maestro.

Paso 5: Despliegue de una Aplicación Nginx para Verificación

Para verificar el despliegue del clúster, desplegaremos una aplicación Nginx.

kubectl create deployment nginx --image=nginx kubectl expose deployment nginx --port=80 --type=LoadBalancer 

Este comando crea un Deployment llamado nginx utilizando la imagen oficial de Nginx y expone el Deployment a través de un LoadBalancer. Si tu proveedor de nube admite LoadBalancers, Kubernetes creará uno automáticamente. Si no, puedes usar un servicio tipo NodePort.

Paso 6: Verificación del Despliegue

Finalmente, verificaremos el despliegue ejecutando los siguientes comandos en el nodo maestro:

kubectl get pods kubectl get services 

El primer comando mostrará la lista de Pods en ejecución en el clúster. Deberías ver un Pod de Nginx en estado Running. El segundo comando mostrará la lista de Services. Deberías ver un Service llamado nginx con un tipo de LoadBalancer (o NodePort).

Pasos Siguientes

  • Explorar más objetos de Kubernetes: Familiarízate con Deployments, Services, ReplicaSets, ConfigMaps, Secrets, y más.
  • Automatización: Utiliza herramientas como Helm para gestionar la instalación y configuración de aplicaciones.
  • Escalado: Aprende a escalar tus aplicaciones utilizando Horizontal Pod Autoscaling (HPA).
  • Monitoreo: Implementa un sistema de monitoreo para supervisar la salud y el rendimiento de tu clúster.
  • Seguridad: Asegura tu clúster aplicando políticas de seguridad y restringiendo el acceso.

¡Felicidades! Has desplegado un clúster Kubernetes básico. Este es solo el comienzo, pero te proporciona una base sólida para construir aplicaciones en contenedores más complejas y escalables.

Comentarios

Entradas populares de este blog

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

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

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