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
Publicar un comentario