Información del clúster de Kubernetes

KubernetesKubernetesBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Kubernetes es una plataforma de orquestación de contenedores que automatiza la implementación, escalado y gestión de aplicaciones contenerizadas. En este laboratorio, explorarás cómo utilizar el comando cluster-info para obtener información sobre tu clúster de Kubernetes. Al final del laboratorio, entenderás cómo iniciar un clúster de Kubernetes, recuperar información esencial del clúster, inspeccionar componentes internos y probar la conectividad del servidor de API.

Este laboratorio está diseñado para principiantes y no se requiere experiencia previa con Kubernetes.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/BasicsGroup(["Basics"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/ClusterInformationGroup(["Cluster Information"]) kubernetes(("Kubernetes")) -.-> kubernetes/TroubleshootingandDebuggingCommandsGroup(["Troubleshooting and Debugging Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/ConfigurationandVersioningGroup(["Configuration and Versioning"]) kubernetes/BasicsGroup -.-> kubernetes/initialization("Initialization") kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/ClusterInformationGroup -.-> kubernetes/cluster_info("Cluster Info") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/describe("Describe") kubernetes/ConfigurationandVersioningGroup -.-> kubernetes/config("Config") kubernetes/ConfigurationandVersioningGroup -.-> kubernetes/version("Version") subgraph Lab Skills kubernetes/initialization -.-> lab-8426{{"Información del clúster de Kubernetes"}} kubernetes/get -.-> lab-8426{{"Información del clúster de Kubernetes"}} kubernetes/cluster_info -.-> lab-8426{{"Información del clúster de Kubernetes"}} kubernetes/describe -.-> lab-8426{{"Información del clúster de Kubernetes"}} kubernetes/config -.-> lab-8426{{"Información del clúster de Kubernetes"}} kubernetes/version -.-> lab-8426{{"Información del clúster de Kubernetes"}} end

Iniciar el clúster de Kubernetes

Un clúster de Kubernetes requiere un entorno en ejecución. En este laboratorio, utilizaremos Minikube, una herramienta que te permite ejecutar un clúster de Kubernetes de forma local. Sigue estos pasos:

  1. Abre tu terminal y asegúrate de estar en el directorio /home/labex/project:

    cd ~/project
  2. Inicia el clúster de Minikube:

    minikube start
    • Minikube crea un clúster de Kubernetes de un solo nodo.
    • Este proceso puede tardar unos minutos, dependiendo de tu sistema. Durante la inicialización, se configurarán varios componentes de Kubernetes.
Inicialización del clúster de Minikube

Recuperar información básica del clúster

Una vez que Minikube esté en ejecución, utiliza el comando kubectl cluster-info para ver información sobre el clúster. Ejecuta el siguiente comando:

kubectl cluster-info
  • La URL del servidor de API es el punto final principal para interactuar con tu clúster.
  • CoreDNS se encarga de la detección de servicios y la resolución DNS dentro del clúster.

Ejemplo de salida:

Kubernetes control plane is running at https://192.168.49.2:8443
CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
  • La URL https://192.168.49.2:8443 es la del servidor de API de Kubernetes. Aquí es donde se envían todos los comandos kubectl.
  • El servicio CoreDNS ayuda a Kubernetes a resolver nombres de dominio para servicios y pods.

Inspeccionar en detalle los componentes del clúster

Para obtener una comprensión más profunda del clúster y sus componentes internos, utiliza:

kubectl cluster-info dump

Este comando proporciona información detallada sobre los componentes clave:

  • etcd: Un almacén de pares clave-valor para todos los datos del clúster.
  • kube-apiserver: El punto de entrada para las solicitudes de la API de Kubernetes.
  • kube-scheduler: Asigna cargas de trabajo (pods) a los nodos disponibles.
  • kube-controller-manager: Mantiene el estado del clúster (por ejemplo, asegura que se estén ejecutando el número deseado de réplicas de pods).

Ejemplo de salida:

Este comando genera una salida detallada que describe la configuración y el estado de los componentes del sistema de Kubernetes. Puedes redirigir la salida a un archivo para facilitar el análisis:

kubectl cluster-info dump > cluster-details.txt

Esto guardará la salida en cluster-details.txt en tu directorio actual.

Ver los nodos en el clúster

Los nodos son las máquinas que ejecutan tus cargas de trabajo en Kubernetes. Para listar los nodos en tu clúster, ejecuta:

kubectl get nodes
  • El nombre del nodo (por ejemplo, minikube) identifica la máquina.
  • El estado (Ready) indica que el nodo está saludable y puede ejecutar cargas de trabajo.
  • En un clúster de Minikube, el nodo actúa tanto como plano de control como como nodo trabajador.

Ejemplo de salida:

NAME       STATUS   ROLES           AGE   VERSION
minikube   Ready    control-plane   5m    v1.20.0

Probar el acceso al servidor de API

El servidor de API es un componente crítico del plano de control de Kubernetes. Puedes probar su accesibilidad ejecutando:

curl $(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}') --insecure
  • Este comando recupera la URL del servidor de API y realiza una solicitud simple a ella.
  • La bandera --insecure omite la verificación del certificado SSL, lo cual es aceptable en esta configuración local.

Ejemplo de salida:

Si el servidor de API es accesible, la respuesta debería ser similar a esta:

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {},
  "status": "Failure",
  "message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
  "reason": "Forbidden",
  "details": {},
  "code": 403
}

Esta respuesta confirma que el servidor de API está en funcionamiento, pero niega el acceso debido a la falta de autenticación, lo cual es lo esperado.

Resumen

En este laboratorio, has aprendido cómo:

  • Iniciar un clúster de Kubernetes con Minikube.
  • Utilizar kubectl cluster-info para recuperar detalles del clúster.
  • Inspeccionar en profundidad los componentes del clúster con kubectl cluster-info dump.
  • Listar los nodos en el clúster utilizando kubectl get nodes.
  • Probar la conectividad del servidor de API con un comando curl.

Esta experiencia práctica proporcionó una base para comprender y explorar los clústeres de Kubernetes. Estos comandos son esenciales para depurar y gestionar entornos de Kubernetes.

Próximos pasos:

  • Explorar los pods y las cargas de trabajo en Kubernetes.
  • Aprender cómo crear servicios para exponer aplicaciones.
  • Experimentar con el escalado de cargas de trabajo en un clúster.

Sigue practicando y que disfrutes del aprendizaje.