LinuxParty

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado
 

Kubernetes es más que una moda: es el estándar de facto para la gestión moderna de contenedores. Aunque su curva de aprendizaje puede ser exigente al principio, con una buena base y ejemplos prácticos, se convierte en una herramienta poderosa para profesionales DevOps, administradores de sistemas y desarrolladores.

Ya sea que trabajes con entornos de desarrollo o en producción a gran escala, Kubernetes te permite tener control, escalabilidad y resiliencia con un solo comando.

En los últimos años, Kubernetes (K8s) se ha convertido en el pilar fundamental para desplegar aplicaciones modernas en la nube. Es la herramienta por excelencia para automatizar la implementación, el escalado y la gestión de aplicaciones en contenedores. Pero… ¿qué es exactamente? ¿Cómo se instala? ¿Y cómo se usa realmente?

Lectura recomendada: Cómo instalar un clúster de Kubernetes en CentOS

Este artículo es una guía completa para entender, instalar y usar Kubernetes, con explicaciones prácticas, ejemplos reales y recomendaciones clave para iniciarte en este potente ecosistema de orquestación.

🚀 ¿Qué es Kubernetes?

Kubernetes es una plataforma de código abierto originalmente desarrollada por Google y ahora mantenida por la Cloud Native Computing Foundation (CNCF). Permite:

  • Orquestar contenedores (principalmente Docker y compatibles con OCI).
  • Automatizar despliegues, escalados, actualizaciones y recuperación de fallos.
  • Gestionar redes, almacenamiento y configuración de aplicaciones.

💡 Kubernetes no ejecuta contenedores directamente, sino que los organiza en pods, controla su ciclo de vida, y los distribuye eficientemente en una infraestructura de nodos.

🧱 Conceptos clave

  • Pod: unidad mínima de ejecución (normalmente contiene uno o varios contenedores).
  • Node: máquina física o virtual donde corren los pods.
  • Cluster: conjunto de nodos gestionados por un nodo principal (master/control plane).
  • Deployment: objeto que gestiona cómo se lanzan y actualizan los pods.
  • Service: punto de acceso estable para los pods (con balanceo de carga).
  • ConfigMap y Secret: permiten gestionar configuración externa y sensible.

🛠️ Cómo instalar Kubernetes

Existen muchas formas de instalar Kubernetes. Aquí nos enfocaremos en una instalación local con Minikube y una instalación real en múltiples nodos (Kubeadm).

Opción 1: Instalación con Minikube (ideal para pruebas)

Requisitos:

  • Linux con virtualización activa (KVM, VirtualBox, etc.).
  • Docker o containerd instalado.
  • kubectl y minikube.

1. Instalar kubectl:

sudo apt install -y curl
curl -LO "https://dl.k8s.io/release/$(curl -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/

2. Instalar Minikube:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube-linux-amd64
sudo mv minikube-linux-amd64 /usr/local/bin/minikube

3. Iniciar el cluster:

minikube start --driver=docker

Verifica el estado:

kubectl get nodes

Opción 2: Instalación en nodos reales (con kubeadm)

Requisitos:

  • 1 nodo master + 1 o más nodos worker.
  • Ubuntu Server 20.04+ o RHEL/AlmaLinux 8+.
  • SSH con acceso root o sudo.
  • Swap desactivado.

1. Preparar los nodos:

# Desactivar swap
sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab

# Habilitar módulos y sysctl
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables=1
net.ipv4.ip_forward=1
EOF

sudo sysctl --system

2. Instalar kubeadm, kubelet y kubectl:

sudo apt update && sudo apt 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 update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

3. Iniciar el nodo maestro:

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

Sigue las instrucciones que aparecen (especialmente el kubeadm join para los workers).

4. Configurar acceso para kubectl:

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

5. Instalar una red (ej: Flannel):

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

6. Añadir nodos workers:

En los workers, ejecuta el comando kubeadm join ... que te dio el master.

👨‍💻 Primeros pasos con Kubernetes

Crear un deployment de Nginx:

kubectl create deployment nginx --image=nginx

Ver los pods:

kubectl get pods

Exponer el servicio:

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

Ver puerto asignado:

kubectl get svc

Escalar el deployment:

kubectl scale deployment nginx --replicas=3

Ver estado de los pods:

kubectl get pods -o wide

🧪 Ejemplo de manifiesto YAML completo

Archivo nginx-deploy.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deploy
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

Desplegarlo:

kubectl apply -f nginx-deploy.yaml

🧰 Herramientas complementarias

  • Helm: gestor de paquetes para Kubernetes.
  • Lens: interfaz visual para gestionar clusters.
  • K9s: TUI para terminal.
  • Prometheus + Grafana: monitoreo y métricas.
  • Cert-Manager: para manejar certificados TLS automáticamente.

📚 Recursos útiles

 

No estás registrado para postear comentarios



Redes:



   

 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías