Introducción a Kubeadm

Kubeadm es una herramienta de línea de comandos que proporciona una forma sencilla de desplegar un clúster de Kubernetes. Está diseñada para ser una herramienta de "baterías incluidas" que facilita la configuración de un clúster de Kubernetes de manera rápida y eficiente. Kubeadm se encarga de las tareas más complejas de configuración y despliegue, permitiendo a los usuarios centrarse en la administración y operación del clúster.

Objetivos de Aprendizaje

Al final de este tema, deberías ser capaz de:

  • Entender qué es Kubeadm y sus beneficios.
  • Instalar y configurar Kubeadm.
  • Desplegar un clúster de Kubernetes utilizando Kubeadm.
  • Realizar tareas básicas de administración del clúster con Kubeadm.

¿Qué es Kubeadm?

Kubeadm es una herramienta que automatiza la configuración de un clúster de Kubernetes. Proporciona comandos para inicializar un clúster maestro y unir nodos adicionales al clúster. Kubeadm se encarga de las configuraciones iniciales necesarias, como la generación de certificados y la configuración de componentes de Kubernetes.

Beneficios de Kubeadm

  • Simplicidad: Facilita la configuración de un clúster de Kubernetes con comandos sencillos.
  • Automatización: Automatiza tareas complejas como la generación de certificados y la configuración de componentes.
  • Flexibilidad: Permite personalizar la configuración del clúster según las necesidades específicas.
  • Compatibilidad: Es compatible con la mayoría de las distribuciones de Linux y versiones de Kubernetes.

Instalación de Kubeadm

Requisitos Previos

Antes de instalar Kubeadm, asegúrate de cumplir con los siguientes requisitos:

  • Sistema Operativo: Una distribución de Linux compatible (por ejemplo, Ubuntu, CentOS).
  • Recursos del Sistema: Al menos 2 CPU, 2 GB de RAM y 20 GB de espacio en disco por nodo.
  • Red: Conectividad de red entre todos los nodos del clúster.
  • Dependencias: Docker instalado y configurado en todos los nodos.

Pasos de Instalación

  1. Actualizar el Sistema:

    sudo apt-get update && sudo apt-get upgrade -y
    
  2. Instalar Docker:

    sudo apt-get install -y docker.io
    sudo systemctl enable docker
    sudo systemctl start docker
    
  3. Agregar el Repositorio de Kubernetes:

    sudo apt-get update && sudo apt-get install -y apt-transport-https curl
    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
    cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
    deb https://apt.kubernetes.io/ kubernetes-xenial main
    EOF
    sudo apt-get update
    
  4. Instalar Kubeadm, Kubelet y Kubectl:

    sudo apt-get install -y kubelet kubeadm kubectl
    sudo apt-mark hold kubelet kubeadm kubectl
    

Inicialización del Clúster con Kubeadm

Inicializar el Nodo Maestro

  1. Ejecutar el Comando de Inicialización:

    sudo kubeadm init --pod-network-cidr=192.168.0.0/16
    

    Este comando inicializa el nodo maestro y configura los componentes necesarios. La opción --pod-network-cidr especifica el rango de direcciones IP para los pods.

  2. Configurar kubectl para el 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
    
  3. Instalar un Plugin de Red para Pods:

    kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
    

    Este comando instala Calico, un plugin de red para Kubernetes. Puedes elegir otros plugins de red según tus necesidades.

Unir Nodos al Clúster

  1. Obtener el Comando de Unión: Después de inicializar el nodo maestro, Kubeadm proporciona un comando para unir nodos adicionales al clúster. El comando se verá algo así:

    kubeadm join <master-ip>:<master-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
    
  2. Ejecutar el Comando en los Nodos de Trabajo: Ejecuta el comando de unión en cada nodo de trabajo para unirlos al clúster.

Administración del Clúster con Kubeadm

Actualización del Clúster

Para actualizar el clúster de Kubernetes, sigue estos pasos:

  1. Actualizar Kubeadm:

    sudo apt-get update && sudo apt-get install -y kubeadm
    
  2. Actualizar el Nodo Maestro:

    sudo kubeadm upgrade plan
    sudo kubeadm upgrade apply v1.20.0
    
  3. Actualizar Kubelet y Kubectl:

    sudo apt-get install -y kubelet kubectl
    sudo systemctl restart kubelet
    
  4. Actualizar los Nodos de Trabajo: Ejecuta los mismos comandos de actualización en cada nodo de trabajo.

Solución de Problemas Comunes

  • Error de Certificado: Si encuentras errores relacionados con certificados, asegúrate de que la hora del sistema esté sincronizada en todos los nodos.
  • Problemas de Red: Verifica que el plugin de red esté correctamente instalado y configurado.
  • Nodos No Disponibles: Asegúrate de que todos los nodos tengan conectividad de red y que los servicios de Kubernetes estén en funcionamiento.

Ejercicio Práctico

Desplegar un Clúster de Kubernetes con Kubeadm

  1. Inicializa el nodo maestro utilizando los comandos proporcionados.
  2. Une al menos un nodo de trabajo al clúster.
  3. Instala un plugin de red para los pods.
  4. Despliega una aplicación simple (por ejemplo, Nginx) en el clúster y verifica que esté funcionando correctamente.

Solución

  1. Inicializar el Nodo Maestro:

    sudo kubeadm init --pod-network-cidr=192.168.0.0/16
    
  2. Configurar kubectl:

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
  3. Instalar Calico:

    kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
    
  4. Unir Nodos de Trabajo: Ejecuta el comando de unión proporcionado por Kubeadm en cada nodo de trabajo.

  5. Desplegar Nginx:

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

    Verifica que Nginx esté funcionando:

    kubectl get pods
    kubectl get svc
    

Conclusión

En este tema, hemos aprendido sobre Kubeadm, una herramienta poderosa para desplegar y administrar clústeres de Kubernetes. Hemos cubierto la instalación de Kubeadm, la inicialización de un clúster, la unión de nodos y la administración básica del clúster. Con estos conocimientos, estás preparado para desplegar y gestionar clústeres de Kubernetes de manera eficiente utilizando Kubeadm.

Curso de Kubernetes

Módulo 1: Introducción a Kubernetes

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

Módulo 8: Seguridad en Kubernetes

Módulo 9: Escalado y Rendimiento

Módulo 10: Ecosistema y Herramientas de Kubernetes

Módulo 11: Estudios de Caso y Aplicaciones del Mundo Real

Módulo 12: Preparación para la Certificación de Kubernetes

© Copyright 2024. Todos los derechos reservados