En esta sección, aprenderás cómo configurar un clúster de Kubernetes desde cero. Este proceso incluye la instalación de las herramientas necesarias, la configuración de los nodos y la verificación de que el clúster esté funcionando correctamente.
Objetivos de Aprendizaje
- Entender los requisitos previos para configurar un clúster de Kubernetes.
- Instalar y configurar
kubeadm
,kubelet
ykubectl
. - Inicializar el clúster y unir nodos al clúster.
- Verificar la configuración del clúster.
Requisitos Previos
Antes de comenzar, asegúrate de tener:
- Un sistema operativo compatible (preferiblemente Ubuntu 20.04 o CentOS 7).
- Acceso a al menos dos máquinas (una para el nodo maestro y otra para el nodo trabajador).
- Conexión a Internet para descargar las herramientas necesarias.
- Privilegios de superusuario (root) en las máquinas.
Paso 1: Preparar las Máquinas
Actualizar el Sistema
Primero, actualiza los paquetes de tu sistema operativo:
Desactivar el Swap
Kubernetes requiere que el swap esté desactivado. Puedes desactivarlo temporalmente con:
Para desactivarlo permanentemente, edita el archivo /etc/fstab
y comenta la línea que contiene la entrada de swap.
Configurar el Firewall
Permite el tráfico necesario para Kubernetes:
sudo ufw allow 6443/tcp sudo ufw allow 2379:2380/tcp sudo ufw allow 10250:10252/tcp sudo ufw allow 10255/tcp
Paso 2: Instalar Docker
Kubernetes utiliza Docker como su motor de contenedores. Instala Docker con los siguientes comandos:
sudo apt-get update sudo apt-get install -y docker.io sudo systemctl enable docker sudo systemctl start docker
Paso 3: Instalar kubeadm, kubelet y kubectl
Añadir la Fuente del Repositorio de Kubernetes
Añade la clave GPG y el repositorio de Kubernetes:
sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl sudo curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
Instalar las Herramientas
Instala kubeadm
, kubelet
y kubectl
:
sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl
Paso 4: Inicializar el Clúster
Inicializar el Nodo Maestro
En el nodo maestro, ejecuta el siguiente comando para inicializar el clúster:
Este comando configurará el nodo maestro y te proporcionará un comando kubeadm join
que usarás para unir los nodos trabajadores al clúster.
Configurar kubectl para el Usuario No Root
Configura kubectl
para tu usuario no root:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Instalar una Red de Pods
Instala una red de pods (por ejemplo, Calico):
Paso 5: Unir Nodos Trabajadores al Clúster
En cada nodo trabajador, ejecuta el comando kubeadm join
que obtuviste al inicializar el nodo maestro. Debe tener un aspecto similar a este:
Paso 6: Verificar el Clúster
Verifica que todos los nodos estén unidos y funcionando correctamente:
Deberías ver una lista de todos los nodos en tu clúster con el estado Ready
.
Ejercicio Práctico
Ejercicio 1: Configurar un Clúster de Kubernetes
- Configura dos máquinas virtuales o instancias en la nube.
- Sigue los pasos anteriores para instalar Docker,
kubeadm
,kubelet
ykubectl
. - Inicializa el nodo maestro y une el nodo trabajador.
- Verifica que el clúster esté funcionando correctamente.
Solución del Ejercicio 1
- Preparar las Máquinas: Actualiza el sistema, desactiva el swap y configura el firewall en ambas máquinas.
- Instalar Docker: Ejecuta los comandos de instalación de Docker en ambas máquinas.
- Instalar kubeadm, kubelet y kubectl: Añade la fuente del repositorio de Kubernetes e instala las herramientas en ambas máquinas.
- Inicializar el Nodo Maestro: Ejecuta
kubeadm init
en el nodo maestro y configurakubectl
. - Unir Nodos Trabajadores: Ejecuta el comando
kubeadm join
en el nodo trabajador. - Verificar el Clúster: Usa
kubectl get nodes
para verificar que ambos nodos estén en estadoReady
.
Conclusión
En esta sección, has aprendido cómo configurar un clúster de Kubernetes desde cero. Has instalado las herramientas necesarias, inicializado el nodo maestro, unido nodos trabajadores y verificado la configuración del clúster. Con esta base, estás listo para explorar los componentes principales de Kubernetes en el siguiente módulo.
Curso de Kubernetes
Módulo 1: Introducción a Kubernetes
- ¿Qué es Kubernetes?
- Arquitectura de Kubernetes
- Conceptos y Terminología Clave
- Configuración de un Clúster de Kubernetes
- CLI de Kubernetes (kubectl)
Módulo 2: Componentes Principales de Kubernetes
Módulo 3: Gestión de Configuración y Secretos
Módulo 4: Redes en Kubernetes
Módulo 5: Almacenamiento en Kubernetes
Módulo 6: Conceptos Avanzados de Kubernetes
Módulo 7: Monitoreo y Registro
- Monitoreo con Prometheus
- Registro con Elasticsearch, Fluentd y Kibana (EFK)
- Verificaciones de Salud y Sondas
- Servidor de Métricas
Módulo 8: Seguridad en Kubernetes
- Control de Acceso Basado en Roles (RBAC)
- Políticas de Seguridad de Pods
- Seguridad de Red
- Seguridad de Imágenes
Módulo 9: Escalado y Rendimiento
- Autoescalado Horizontal de Pods
- Autoescalado Vertical de Pods
- Autoescalado de Clúster
- Ajuste de Rendimiento
Módulo 10: Ecosistema y Herramientas de Kubernetes
Módulo 11: Estudios de Caso y Aplicaciones del Mundo Real
- Despliegue de una Aplicación Web
- CI/CD con Kubernetes
- Ejecución de Aplicaciones con Estado
- Gestión Multi-Clúster