Crear una arquitectura de 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 empaquetadas en contenedores. Este desafío explora la arquitectura de Kubernetes, incluyendo los componentes que conforman un clúster de Kubernetes y sus interacciones.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/ClusterInformationGroup(["Cluster Information"]) kubernetes(("Kubernetes")) -.-> kubernetes/TroubleshootingandDebuggingCommandsGroup(["Troubleshooting and Debugging Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedCommandsGroup(["Advanced Commands"]) kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/BasicCommandsGroup -.-> kubernetes/create("Create") kubernetes/AdvancedCommandsGroup -.-> kubernetes/apply("Apply") kubernetes/ClusterInformationGroup -.-> kubernetes/cluster_info("Cluster Info") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/describe("Describe") subgraph Lab Skills kubernetes/get -.-> lab-23730{{"Crear una arquitectura de clúster de Kubernetes"}} kubernetes/create -.-> lab-23730{{"Crear una arquitectura de clúster de Kubernetes"}} kubernetes/apply -.-> lab-23730{{"Crear una arquitectura de clúster de Kubernetes"}} kubernetes/cluster_info -.-> lab-23730{{"Crear una arquitectura de clúster de Kubernetes"}} kubernetes/describe -.-> lab-23730{{"Crear una arquitectura de clúster de Kubernetes"}} end

Componentes del plano de control de Kubernetes

El plano de control de Kubernetes gestiona el estado general del clúster y la implementación y escalado de aplicaciones. Los componentes del plano de control son los siguientes:

  • kube-apiserver: La interfaz de usuario del plano de control de Kubernetes, que procesa todas las solicitudes de gestión al clúster.
  • etcd: Un almacén de claves y valores distribuido que almacena los datos de configuración del clúster de Kubernetes.
  • kube-scheduler: Responsable de programar los pods para que se ejecuten en nodos del clúster.
  • kube-controller-manager: Ejecuta controladores que gestionan el estado de varios objetos de Kubernetes.

Tareas

Tu tarea es recuperar y mostrar el estado de los componentes del plano de control, incluyendo kube-apiserver, etcd, kube-scheduler y kube-controller-manager.

Requisitos

  • Utiliza un comando kubectl para recuperar el estado de los componentes del plano de control.
  • Ejecuta el comando en el directorio /home/labex/project.
  • La salida debe mostrar el estado de cada componente del plano de control.

Ejemplo

A continuación, se muestra un ejemplo de la salida esperada al recuperar el estado de los componentes del plano de control:

NAME                 STATUS    MESSAGE                         ERROR
controller-manager   Healthy   ok
etcd-0               Healthy   {"health":"true","reason":""}
scheduler            Healthy   ok
✨ Revisar Solución y Practicar

Componentes de nodo de Kubernetes

Los componentes de nodo de Kubernetes ejecutan contenedores y proporcionan el entorno de ejecución para las aplicaciones. Los componentes de nodo son los siguientes:

  • kubelet: El agente de nodo de Kubernetes que gestiona el estado del nodo y ejecuta contenedores.
  • kube-proxy: El proxy de red de Kubernetes que dirige el tráfico hacia el contenedor adecuado.

Tareas

Muestra información sobre los nodos que se ejecutan en el clúster de Kubernetes, incluyendo el nombre del nodo, el estado y otros detalles relevantes.

Requisitos

  • Utiliza un comando kubectl para listar los nodos en el clúster de Kubernetes.
  • Ejecuta el comando en el directorio /home/labex/project.
  • La salida debe mostrar detalles sobre cada nodo en el clúster.

Ejemplo

A continuación, se muestra un ejemplo de la salida esperada al mostrar los nodos:

NAME       STATUS   ROLES           AGE     VERSION
minikube   Ready    control-plane   2m52s   v1.26.1
✨ Revisar Solución y Practicar

Componentes de un Pod de Kubernetes

Un pod de Kubernetes es la unidad de implementación más pequeña en Kubernetes, que representa una única instancia de un proceso en ejecución en el clúster. Cada pod consta de uno o más contenedores que comparten el mismo espacio de nombres de red y volúmenes de almacenamiento.

Tareas

  1. Crea un archivo llamado simple-pod.yaml con una configuración de pod para un contenedor de Nginx.
  2. Despliega el pod utilizando el comando kubectl adecuado.
  3. Muestra información sobre los pods que se ejecutan en el clúster de Kubernetes.

Requisitos

  • Crea un archivo llamado simple-pod.yaml en el directorio /home/labex/project con una configuración para un pod llamado simple-pod que utilice la imagen de Nginx.
  • Utiliza un comando kubectl para crear el pod a partir del archivo YAML.
  • Utiliza otro comando kubectl para listar los pods que se ejecutan en el clúster de Kubernetes.

Ejemplo

A continuación, se muestra un ejemplo de la salida esperada al mostrar los pods:

pod/simple-pod creado
NOMBRE         LISTO   ESTADO    REINICIOS   EDAD
simple-pod   1/1     En ejecución   0          29s
✨ Revisar Solución y Practicar

Componentes de los Servicios de Kubernetes

Un servicio de Kubernetes es una abstracción que define un conjunto lógico de pods y una política para acceder a ellos. Los componentes del servicio son los siguientes:

  • Dirección IP del servicio: Una dirección IP virtual asignada al servicio.
  • Puerto del servicio: Un número de puerto asignado al servicio.
  • Punto final: Una lista de direcciones IP y números de puerto que apuntan a los pods detrás del servicio.

Tareas

  1. Crea un archivo llamado nginx-service.yaml con una configuración de servicio para el pod de Nginx.
  2. Despliega el servicio utilizando el comando kubectl adecuado.
  3. Muestra información sobre los servicios que se ejecutan en el clúster de Kubernetes.

Requisitos

  • Crea un archivo llamado nginx-service.yaml en el directorio /home/labex/project con una configuración para un servicio llamado nginx-service que exponga el puerto 80.
  • Utiliza un comando kubectl para crear el servicio a partir del archivo YAML.
  • Utiliza otro comando kubectl para listar los servicios que se ejecutan en el clúster de Kubernetes.

Ejemplo

A continuación, se muestra un ejemplo de la salida esperada al mostrar los servicios:

NOMBRE            TIPO        CLUSTER-IP     EXTERNAL-IP   PUERTOS(S)   EDAD
kubernetes      ClusterIP   10.96.0.1      <ninguno>        443/TCP   5m42s
nginx-service   ClusterIP   10.96.184.71   <ninguno>        80/TCP    4s
✨ Revisar Solución y Practicar

Resumen

En este desafío, exploramos la arquitectura de Kubernetes, incluyendo los componentes del plano de control, nodo, pod y servicio. Aprendimos cómo verificar el estado de varios componentes, crear un pod y un servicio simples y exponer un pod a aplicaciones externas. Comprender los componentes que forman un clúster de Kubernetes y sus interacciones proporciona una base sólida para implementar y administrar aplicaciones empaquetadas en contenedores.