This is the Trace Id: 857f8a1894788205fc60480130233dec
Saltar al contenido principal
Azure
fondo degradado

¿Qué es Kubernetes?

Aprenda a ejecutar contenedores automatizando la implementación, la administración y el escalado.

Definición de Kubernetes

Kubernetes es un software de código abierto que automatiza la implementación, la administración y el escalado de aplicaciones en contenedores. Organiza clústeres de máquinas virtuales, programa contenedores y proporciona recuperación automática, equilibrio de carga y portabilidad entre entornos.

Puntos clave

  • Kubernetes es una plataforma que le ayuda a ejecutar, controlar y expandir cargas de trabajo de contenedor en varios servidores de un clúster.
  • Agrupa contenedores en Pods, con una programación del plano de control y controladores que mantienen el estado deseado.
  • Controla la detección de servicios, el equilibrio de carga, el escalado automático y la recuperación automática (reinicios, reemplazos y reprogramación).
  • Teams lo usa para versiones portátiles en entornos y para realizar un seguimiento de las métricas de estado y estabilidad.

Explicación de Kubernetes

Kubernetes es un software de código abierto que DevOps usa para implementar, administrar y escalar contenedores en un clúster. Docker, otra tecnología de código abierto, es el formato de archivo contenedor predeterminado que se usa normalmente junto con Kubernetes.

Contenedores

Los contenedores empaquetan una aplicación con sus dependencias y configuración para que pueda ejecutarse de forma coherente en entornos diferentes. A medida que una aplicación evoluciona, puede ejecutar muchos contenedores en muchos servidores y coordinar todo esto manualmente se complica. Kubernetes aborda esa complejidad con una API de código abierto y un sistema de control que decide qué debe ejecutarse y lo mantiene en ejecución.

Qué hace Kubernetes por usted

Programación y selección de ubicación de recursos

Kubernetes organiza clústeres de máquinas virtuales y programa contenedores para que se ejecuten en función de los recursos de proceso disponibles y las necesidades de recursos de cada contenedor.

Equilibrio de carga y detección de servicios

Kubernetes administra la detección de servicios y el equilibrio de carga para que el tráfico se pueda enrutar a los Pods adecuados, incluso cuando los Pods cambian con el tiempo.

Escalado para satisfacer la demanda

Kubernetes escala las cargas de trabajo en función del uso del proceso y del estado deseado que establezca.

Recuperación automática cuando se produce un error

Kubernetes comprueba el estado de los recursos y puede reiniciar o replicar contenedores cuando se producen problemas. Reinicia o reemplaza los contenedores con errores y retiene el tráfico hasta que las cargas de trabajo estén listas.

Admite cambios controlados

Kubernetes admite patrones de implementación para ejecutar aplicaciones, incluidas las implementaciones automatizadas y las reversiones en función del estado deseado que se describe.

Configuración y administración de secretos

Kubernetes proporciona administración de secretos y configuraciones para información confidencial, como contraseñas o tokens.

Orquestación de almacenamiento

Kubernetes puede montar los sistemas de almacenamiento que elija (por ejemplo, opciones de almacenamiento local o nube pública), en función del modelo de orquestación de almacenamiento de Kubernetes.

Glosario de objetos rápido

Kubernetes se basa en objetos de API: recursos que se declaran y administran. Estas son algunas:

  • Pod: unidad básica que ejecuta uno o varios contenedores.

  • Servicio: una manera estable de exponer una aplicación y enrutar el tráfico a los Pods cambiantes.

  • Implementación: una manera de describir un estado de aplicación deseado y actualizarlo con el tiempo (a menudo vinculado a implementaciones y reversiones).

  • Nodo: una máquina del clúster donde se ejecutan los Pods.

  • Plano de control: componentes que administran el estado del clúster y la programación de decisiones.

Cómo encajan todos juntos

  1. Declara el estado deseado para la aplicación (qué debe ejecutarse, cuántas copias, necesidades de recursos).

  2. El plano de control registra y actúa en esa solicitud a través de la API de Kubernetes y el almacén de respaldo.

  3. El programador coloca Pods en nodos con recursos suficientes.

  4. Los componentes de nodo ejecutan la carga de trabajo.

  5. Los controladores se reconcilian continuamente para que el estado real coincida con el estado deseado: escalar, reemplazar y actualizar las cargas de trabajo según sea necesario.

Arquitectura de Kubernetes

Los bloques de creación principales

Clúster: plano de control más nodos de trabajo

Normalmente, un clúster de Kubernetes se describe en dos partes: un plano de control que administra el clúster y los nodos de trabajo que ejecutan las cargas de trabajo.

Componentes del plano de control

Estos componentes administran el estado general del clúster:

  • kube-apiserver: expone la API HTTP de Kubernetes (la puerta principal para las solicitudes).

  • etcd: un almacén de clave-valor coherente y de alta disponibilidad para los datos del clúster.

  • kube-scheduler: busca Pods que necesitan colocación y los asigna a un nodo.

  • kube-controller-manager: ejecuta controladores que concilian el estado real con el estado deseado.

  • cloud-controller-manager (opcional): conecta Kubernetes a la lógica de control específica del proveedor de nube.

Componentes de nodo

Cada nodo de trabajo ejecuta software que mantiene Pods y reglas de red:

  • kubelet: garantiza que los Pods se ejecutan en el nodo, incluidos sus contenedores.

  • kube-proxy (opcional): mantiene reglas de red para admitir servicios.

  • container runtime: ejecuta contenedores en el nodo.

Pods: la unidad de trabajo básica

Kubernetes no programa contenedores individuales directamente en el resumen. Agrupa uno o varios contenedores en un Pod, que se convierte en la unidad operativa básica. A continuación, los Pods se escalan o reducen verticalmente hacia el estado deseado que defina.

En la práctica, esto significa:

  1. Describe la aplicación que quiere ejecutar.

  2. Kubernetes asigna los Pods a máquinas con recursos de procesamiento disponibles.

  3. Los controladores mantienen el clúster en movimiento hacia el estado que solicitó.

Redes de servicio

Los Pods pueden ir y venir, por lo que Kubernetes proporciona primitivos (bloques de creación básicos que se combinan para describir y ejecutar aplicaciones en un clúster) que ofrecen formas estables de llegar a las cargas de trabajo.

Conceptos básicos de las redes de Pod

Cada Pod obtiene su propia dirección IP en todo el clúster y los Pods pueden comunicarse entre nodos sin traducción de direcciones de red (NAT) en el modelo de red de Kubernetes.

Servicios

La API de servicio proporciona una dirección IP estable o un nombre de host para un conjunto de Pods de back-end, incluso a medida que los Pods individuales cambian con el tiempo.

EndpointSlice

Kubernetes mantiene objetos de segmento de punto de conexión para realizar un seguimiento de los Pods que respaldan actualmente un servicio.

API de entrada/puerta de enlace

Para exponer servicios a clientes fuera del clúster, Kubernetes admite la API de puerta de enlace (y la entrada como su predecesora).

Servicios LoadBalancer

Algunos entornos pueden exponer un servicio externamente mediante el tipo de servicio LoadBalancer.

Complementos que puede ejecutar en un clúster

Los clústeres de Kubernetes suelen incluir complementos que amplían la funcionalidad más allá de los componentes principales. Entre los ejemplos se incluyen:

  • DNS para la resolución de nombres en todo el clúster.

  • Interfaz de usuario web (panel) para la administración de clústeres.

  • Supervisión de recursos de contenedor para la recopilación de métricas.

  • Registro de nivel de clúster para recopilar registros de forma centralizada.

¿Cómo funciona Kubernetes?

Kubernetes ejecuta aplicaciones en contenedores en un clúster de máquinas y las mantiene en el estado descrito. Para ello, coloca el trabajo en las máquinas adecuadas, enruta el tráfico a los lugares adecuados y observa errores y cambios.

El flujo básico

1. Describe lo que quiere ejecutar

La mayoría de las cargas de trabajo de Kubernetes se inician como un "estado deseado" declarado (qué debe ejecutarse, cuántas copias y cómo deben exponerse). Kubernetes se basa en la configuración declarativa y la automatización.

2. Kubernetes decide dónde debe ejecutarse

Kubernetes programa contenedores en máquinas del clúster en función de los recursos de proceso disponibles y de lo que necesita cada contenedor. Los contenedores se ejecutan dentro de Pods, que es la unidad que Kubernetes coloca en una máquina.

3. Kubernetes sigue comprobando la realidad frente al estado deseado

Los controladores ven el clúster y trabajan para acercar el estado actual al estado deseado mediante el servidor de API para realizar cambios.

Programación de contenedores y administración diaria

La programación es el "¿dónde debe ejecutarse?" decisión.

1. Los Pods se programan, no los contenedores individuales

Kubernetes agrupa los contenedores en Pods y a continuación, los coloca en las máquinas.

2. El programador asigna Pods a un nodo adecuado

Kube-scheduler busca Pods que aún no están asignados y selecciona un nodo para ellos.

3. Los agentes de nodo mantienen los Pods en ejecución

En cada nodo, kubelet se asegura de que los Pods se estén ejecutando (incluidos sus contenedores).

Equilibrio de carga y detección de servicios

Los contenedores y Pods se pueden crear, mover o reemplazar, por lo que las aplicaciones necesitan formas estables de encontrarse entre sí.

La detección de servicios y el equilibrio de carga son comportamientos integrados

Kubernetes administra la detección de servicios y usa el equilibrio de carga para que el tráfico se pueda enrutar incluso a medida que los Pods cambian con el tiempo.

Los servicios proporcionan una dirección estable para un conjunto cambiante de Pods

La API de servicio proporciona una dirección IP estable o un nombre de host para un servicio respaldado por uno o varios Pods, y Kubernetes realiza un seguimiento de los Pods de respaldo a través de objetos EndpointSlice.

Actualizaciones de enrutamiento de tráfico a medida que cambian los Pods

Cuando los Pods detrás de un cambio de servicio, el enrutamiento del servicio se adapta para que el tráfico siga llegando a los back-ends actuales.

Escalado de aplicaciones (y por qué es importante el "estado deseado")

Kubernetes puede escalar las cargas de trabajo hacia el estado establecido, incluido el escalado basado en el uso de proceso.

Entre las ideas de escalado comunes se incluyen:

  • Más réplicas (más Pods) para controlar una mayor demanda.

  • Menos réplicas cuando la demanda disminuye.

  • Seguimiento de recursos para que las decisiones de selección de ubicación reflejen las necesidades de CPU y memoria.

Esto vuelve al modelo de "estado deseado": se especifica el destino y los controladores siguen trabajando hacia él.

Recuperación automática: Qué ocurre cuando se interrumpe algo

Kubernetes incluye comportamientos de recuperación automática que tienen como objetivo mantener el estado y la disponibilidad de la carga de trabajo. Entre ellas se incluyen:

  • Reinicio de contenedores con errores (reinicios de nivel de contenedor).

  • Reemplazar Pods con errores para mantener el número solicitado de réplicas (reemplazo de réplica).

  • Reprogramar cargas de trabajo cuando los nodos dejan de estar disponibles.

  • Quitar Pods con errores de los puntos de conexión de servicio para que el tráfico solo vaya a Pods correctos (equilibrio de carga para servicios).

La recuperación automática comprueba el estado del contenedor y los reinicia o replica cuando se producen problemas.

El rol de los KPI de Kubernetes

Los indicadores clave de rendimiento (KPI o métricas) se usan para comprender el estado del clúster y el comportamiento de la carga de trabajo.

De dónde proceden los KPI

  • Los componentes del sistema de Kubernetes emiten métricas (formato Prometheus) que son útiles para paneles y alertas.

  • Las métricas suelen estar disponibles en el punto de conexión HTTP /metrics de un componente, incluidos componentes como kube-apiserver, kube-scheduler, kubelet, kube-proxy y kube-controller-manager.

Ejemplos de lo que los KPI le ayudan a detectar

  • Señales de mantenimiento del clúster (métricas de nivel de componente y patrones de error)

  • Estabilidad de la carga de trabajo (por ejemplo, reinicios o reemplazos frecuentes)

  • Presión de capacidad (asignación de recursos frente a demanda, asociada a decisiones de escalado)

Por qué esto importa en las operaciones diarias

La supervisión proporciona a los equipos una vista más completa de los recursos del clúster, la API de Kubernetes, los contenedores y los registros, acortando el bucle de comentarios entre problemas y correcciones.

Ventajas y casos de uso

Kubernetes se suele elegir cuando los equipos necesitan una manera coherente de ejecutar muchos contenedores en muchos equipos, lo que mantiene el enrutamiento, el escalado y la recuperación del tráfico controlados por la plataforma.

Escalabilidad

Kubernetes puede escalar las cargas de trabajo, es decir, aumentarlas o reducirlas a medida que cambia la demanda, hacia un estado de destino y puede escalarse en función del uso de proceso.

Casos de uso comunes

  • Aplicaciones web con tráfico variable (campañas, picos estacionales): ajuste las réplicas a medida que cambia la carga.

  • Procesamiento por lotes o controlado por eventos: agregue capacidad para ráfagas y a continuación, escale verticalmente.

  • Microservicios: escale servicios específicos sin escalar toda la aplicación.

Eficiencia de los recursos

Kubernetes admite el empaquetado automático de contenedores, que consiste en colocar contenedores en nodos en función de las necesidades de CPU y memoria para hacer un mejor uso de los recursos disponibles. También realiza un seguimiento de la asignación de recursos a medida que administra las cargas de trabajo.

Casos de uso comunes

  • Clústeres compartidos para varios equipos: reduzca la capacidad desperdiciada colocando las cargas de trabajo donde haya recursos disponibles.

  • Clústeres de cargas de trabajo mixtas (servicios más trabajos): mantenga los nodos ocupados sin colocación manual.

Equilibrio de carga y detección de servicios

Kubernetes puede exponer cargas de trabajo mediante DNS o una dirección IP, y puede distribuir el tráfico de red para mantener estables las implementaciones. También administra la detección de servicios e incorpora equilibrio de carga a medida que cambian las cargas de trabajo.

Casos de uso comunes

  • Comunicación de microservicios: los servicios se encuentran entre sí a través de nombres estables mientras cambian los Pods.

  • API internas detrás de un punto de conexión estable: enrutar el tráfico solo a los back-end actuales.

Recuperación automática

Kubernetes está diseñado para reemplazar contenedores con errores, volver a programar las cargas de trabajo cuando los nodos dejan de estar disponibles y mantener el estado deseado. Algunos ejemplos son los reinicios de contenedores, el reemplazo de réplicas y la eliminación de Pods incorrectos de los puntos de conexión de servicio para que el tráfico solo vaya a Pods en buen estado.

Casos de uso comunes

  • Servicios siempre activados: reinicie o reemplace las instancias con errores sin intervención manual.

  • Clústeres con renovación frecuente de nodos: vuelva a programar las cargas de trabajo cuando un nodo deje de funcionar.

  • Servicios detrás de un servicio: detenga el enrutamiento del tráfico a Pods incorrectos.

Versiones más seguras

Kubernetes admite implementaciones y reversiones automatizadas. Describa el estado deseado y Kubernetes mueve el estado real hacia él a una velocidad controlada.

Casos de uso comunes

  • Actualizaciones frecuentes de la aplicación: revierta los cambios gradualmente y a continuación, revierta si es necesario.

  • Teams envía varios servicios: mantenga la coherencia de la mecánica de lanzamiento entre aplicaciones.

Portabilidad

Las aplicaciones en contenedores son independientes de la infraestructura y Kubernetes ayuda a moverlas de máquinas locales a producción en entornos locales, sin servidor, nube híbrida, y multinube a la vez que mantiene la coherencia entre entornos.

Casos de uso comunes

  • Paridad de desarrollo, pruebas y producción: mantenga el mismo modelo de empaquetado y programación en todos los entornos.

  • Implementaciones híbridas: ejecute partes de un sistema local y partes de la nube con el mismo enfoque de orquestación.

Comienza a usar Kubernetes

Kubernetes proporciona una manera común de ejecutar cargas de trabajo en contenedores con configuración declarativa y automatización de aprendizaje automático, respaldado por un conjunto grande y creciente de herramientas y soporte técnico de la comunidad.

Por qué sigue siendo importante para las aplicaciones nativas de la nube

A medida que los equipos crean sistemas formados por muchos servicios, cargas de trabajo de corta duración y actualizaciones frecuentes, Kubernetes sigue siendo una base práctica porque se centra en operaciones repetibles:

  • Operaciones coherentes entre entornos (contenedores empaquetados con dependencias, que se ejecutan de la misma manera en todos los entornos).

  • Un ecosistema amplio y activo con servicios, soporte técnico y herramientas ampliamente disponibles.

  • Extensibilidad a través de complementos, complementos y un programa de conformidad integrados por la comunidad que mantiene coherentes las API principales entre versiones.

Si va a compilar o ejecutar cargas de trabajo, Servicio Azure Kubernetes (AKS) le ayuda a implementar y administrar aplicaciones en contenedores, con Azure administrando el plano de control.

fondo degradado
Recursos
Implementación

Recursos de Azure

Explore la tecnología de desarrollo más reciente y descubra nuevas aptitudes.
Entrenamiento

Introducción a Kubernetes

Este curso le guía por los tipos de problemas empresariales que puede resolver mediante Kubernetes.
Educación

Azure para estudiantes

Adquiera aptitudes para impulsar su carrera profesional y lograr un impacto positivo en el mundo.
Preguntas frecuentes

Preguntas más frecuentes

  • Kubernetes se usa para implementar, administrar y escalar aplicaciones en contenedores en un clúster. Programa cargas de trabajo en función del proceso disponible, enruta el tráfico con la detección de servicios y el equilibrio de carga, y ayuda a mantener las aplicaciones en ejecución reiniciando o reemplazando los contenedores con errores.
  • Kubernetes suele ser usado por los desarrolladores y administradores de plataforma que ejecutan aplicaciones en contenedores. Si quiere menos mantenimiento del plano de control, un servicio administrado, como Servicio Azure Kubernetes (AKS), puede controlar el plano de control mientras se centra en los nodos y las aplicaciones.
  • Sí. Kubernetes puede ejecutar aplicaciones en contenedores en una infraestructura local o local, y también admite configuraciones híbridas y multinube. Los contenedores permanecen portátiles porque la aplicación se empaqueta independientemente de las máquinas subyacentes.
  • Puede tardar tiempo porque hay varios conceptos básicos (clústeres, nodos, Pods, servicios). Comience con los conceptos básicos y después, practique implementando una pequeña aplicación y siga una ruta de aprendizaje guiada para generar confianza.