Introducción
Kubernetes es un sistema de orquestación de contenedores. Administra cómo se programan, ejecutan, exponen y recuperan las aplicaciones en contenedores dentro de un clúster.
Para interactuar con un clúster de Kubernetes, normalmente se utiliza kubectl. Antes de implementar aplicaciones, necesita un clúster en ejecución y una configuración funcional del cliente que apunte correctamente a él.
En este laboratorio recorrerá los pasos fundamentales para configurar el acceso a un clúster de Kubernetes. Utilizará Minikube, una herramienta que ejecuta localmente un clúster de Kubernetes de un solo nodo, ideal para el aprendizaje y el desarrollo.
Aprenderá a:
- Iniciar un clúster local de Kubernetes.
- Verificar el contexto de
kubectlpara asegurarse de que está utilizando el clúster correcto. - Obtener información esencial del clúster.
- Enumerar los nodos del clúster para comprobar su estado.
Iniciar el clúster
En este paso iniciará un clúster local de Kubernetes mediante Minikube. Minikube crea una máquina virtual o un contenedor en su equipo local y despliega dentro de él un clúster sencillo. Esto le permite practicar comandos de Kubernetes sin necesitar un proveedor de nube.
En esta etapa conviene distinguir claramente tres conceptos. Un clúster es todo el entorno de Kubernetes. Un nodo es una máquina dentro de ese clúster. El plano de control es la parte que acepta las solicitudes de la API y decide qué debe suceder. Minikube reúne estos componentes en un entorno local de aprendizaje para que pueda centrarse en los conceptos de Kubernetes antes de trabajar con infraestructura en la nube.
Primero, asegúrese de encontrarse en el directorio del proyecto:
cd ~/project
Ahora inicie el clúster de Minikube. Especificaremos el controlador docker para ejecutar el clúster dentro de un contenedor de Docker, que es compatible con este entorno de laboratorio.
minikube start --driver=docker
Este proceso puede tardar unos minutos porque descarga las imágenes de Kubernetes necesarias e inicia el plano de control. Verá mensajes que indican que Minikube está descargando imágenes, iniciando el contenedor y configurando el clúster.
Cuando finalice el comando, compruebe el estado de Minikube para asegurarse de que se está ejecutando correctamente:
minikube status
Debería ver mensajes que indiquen que host, kubelet y apiserver están en estado "Running".
Verificar el contexto
En este paso verificará que la herramienta de línea de comandos kubectl esté configurada para comunicarse con su nuevo clúster de Minikube.
Kubernetes utiliza un archivo de configuración, normalmente ubicado en ~/.kube/config, para almacenar la información de acceso a los clústeres. Este archivo puede contener datos de varios clústeres. El «contexto» determina a qué clúster envía los comandos kubectl. Cuando inició Minikube en el paso anterior, la herramienta actualizó automáticamente la configuración y estableció el contexto en minikube.
Este concepto es importante porque kubectl es solo un cliente. El clúster no está «dentro» de kubectl. La herramienta lee los datos de conexión, los certificados y el contexto seleccionado actualmente, y después envía solicitudes al servidor de la API de Kubernetes. En el trabajo real, los ingenieros suelen cambiar entre clústeres de desarrollo, preparación y producción. Por eso, comprobar el contexto actual es una práctica de seguridad, no un simple trámite.
Para verificar el contexto actual, ejecute el siguiente comando:
kubectl config current-context
La salida debe ser:
minikube
Si desea consultar todos los detalles de configuración, incluida la URL del servidor del clúster y los certificados de usuario, que se muestran de forma segura, puede ver la configuración:
kubectl config view
Esto confirma que los siguientes comandos kubectl que ejecute se aplicarán a su clúster local de Minikube.
Comprobar la información del clúster
En este paso obtendrá información básica del clúster para verificar la conectividad y comprobar dónde se está ejecutando el plano de control de Kubernetes.
El comando cluster-info es una forma sencilla de comprobar si kubectl puede comunicarse correctamente con el servidor de la API.
Kubernetes es un sistema basado en una API. Casi todas las acciones, desde crear un Pod hasta escalar un Deployment, se convierten en una solicitud de API al plano de control. Por eso, «¿Puede mi cliente acceder al servidor de la API?» es una de las primeras comprobaciones de estado en cualquier investigación de un clúster.
Ejecute el siguiente comando:
kubectl cluster-info
Debería ver una salida similar a esta:
Kubernetes control plane is running at https://127.0.0.1:32769
CoreDNS is running at https://127.0.0.1:32769/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
Las direcciones IP y los puertos pueden variar, pero lo importante es que aparezca el mensaje "Kubernetes control plane is running". Esto confirma que su cliente (kubectl) se ha conectado correctamente al servidor, es decir, al clúster.
Enumerar los nodos
En este paso inspeccionará los nodos del clúster. Un nodo es una máquina de trabajo, virtual o física, dentro de Kubernetes. Como está utilizando Minikube, se espera que vea un solo nodo que actúa tanto como plano de control como nodo de trabajo.
En los clústeres grandes, estas funciones suelen estar separadas. Los nodos del plano de control se centran en la orquestación, mientras que los nodos de trabajo ejecutan las cargas de trabajo de las aplicaciones. Minikube las combina en un solo nodo para mantener sencillo el entorno de aprendizaje, pero la salida del comando presenta los mismos conceptos que encontrará en producción.
Para enumerar todos los nodos del clúster, utilice el comando get nodes:
kubectl get nodes
Verá una salida similar a la siguiente:
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 5m20s v1.26.1
Veamos el significado de las columnas:
- NAME: el nombre del nodo, en este caso,
minikube. - STATUS: el estado debe ser
Ready, lo que indica que el nodo está en buen estado y preparado para aceptar cargas de trabajo. - ROLES: muestra la función del nodo, por ejemplo,
control-plane. - AGE: indica cuánto tiempo lleva ejecutándose el nodo.
- VERSION: la versión de Kubernetes instalada en el nodo.
Si el estado es NotReady, normalmente significa que el nodo todavía se está iniciando o que existe un problema de red. Como su estado es Ready, el clúster está completamente operativo.
Resumen
En este laboratorio ha configurado correctamente su entorno para acceder a un clúster de Kubernetes. Ha realizado las siguientes tareas:
- Inició un clúster local de Kubernetes mediante Minikube.
- Verificó que el contexto de kubectl está configurado correctamente para utilizar el clúster local.
- Obtuvo información del clúster para confirmar la conectividad con el servidor de la API.
- Enumeró los nodos para asegurarse de que la infraestructura del clúster está preparada y en buen estado.
Estos son los pasos fundamentales que debe completar antes de desplegar aplicaciones en Kubernetes. Ahora dispone de un entorno local funcional para continuar su aprendizaje de Kubernetes.


