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,kubeletykubectl. - 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,kubeletykubectl. - 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 initen el nodo maestro y configurakubectl. - Unir Nodos Trabajadores: Ejecuta el comando
kubeadm joinen el nodo trabajador. - Verificar el Clúster: Usa
kubectl get nodespara 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
