Tutoriales

Funciones detalladas de Kubernetes

Esta es la secuela Introducción a Kubernetes guía. En este artículo, aprenderemos sobre las características importantes de Kubernetes, que lo ayudarán a tener una comprensión más profunda de los conceptos funcionales de Kubernetes.

1. Embalaje automático

Esta es una de las características más importantes de Kubernetes. Kubernetes ubica los contenedores de manera inteligente en función de los recursos necesarios y otras restricciones sin afectar la disponibilidad.

Kubernetes proporciona administración de recursos, que puede especificar automáticamente cómo cada contenedor en el Pod consume recursos como CPU y RAM.

Boxeo automático

2. Descubrimiento de servicios y equilibrio de carga

El descubrimiento de servicios y el equilibrio de carga se proporcionan como servicios en Kubernetes. Los servicios conectan los pods a la red en todo el clúster de manera coherente. El proceso de determinar cómo conectarse a un servicio se denomina descubrimiento de servicios.

La recogida de contenedores es POD. Los POD con el mismo conjunto de funciones se combinan en un conjunto llamado servicio.

A cada POD se le asignará una dirección IP y un único nombre DNS para el servicio (conjunto de POD). Con esta arquitectura, Kubernetes tendrá un control claramente definido sobre la red y la comunicación entre los POD, y se puede lograr el equilibrio de carga.

Equilibrio de carga y descubrimiento de servicios
Equilibrio de carga y descubrimiento de servicios

Colocar un equilibrador de carga (proxy inverso, como Nginx o HAProxy) frente a un grupo de instancias de un solo servicio es una técnica común para resolver el problema del descubrimiento de servicios.

La dirección del equilibrador de carga (nombre DNS o IP en general) es un dato bastante confiable. Se puede proporcionar al cliente durante la fase de desarrollo o configuración y puede permanecer sin cambios durante el ciclo de vida de un solo cliente.

Posteriormente, desde el punto de vista del cliente, ponerse en contacto con un servicio de instancias múltiples no es diferente de acceder a un único punto final de red. En otras palabras, el descubrimiento de servicios ocurre completamente en el lado del servidor.

3. Disposición de almacenamiento

Los usuarios pueden usar Kubernetes para montar cualquier sistema de almacenamiento que deseen, incluido el almacenamiento local, los proveedores de nube pública, etc. Aún debe proporcionarse el sistema de almacenamiento subyacente.

Para los usuarios y administradores, Kubernetes proporciona una API que aísla los detalles de los métodos de entrega de almacenamiento de los métodos de uso del almacenamiento.

Hay algunos términos que debe comprender acerca de la integración del almacenamiento persistente con Kubernetes. Son los siguientes:

  • Interfaz de almacenamiento de contenedores (CSI) : Este es un estándar que permite que todos los orquestadores de contenedores se conecten al sistema de almacenamiento, como Ondat De forma coherente. Los proveedores de almacenamiento deben escribir su capa de integración directamente en el código fuente de Kubernetes antes de que se lance CSI. Por lo tanto, la actualización es difícil y requiere mucho tiempo, ya que cualquier defecto puede hacer que Kubernetes se bloquee.
  • Clase de almacenamiento : Los administradores pueden utilizar las clases de almacenamiento de Kubernetes para predefinir los tipos de almacenamiento que los usuarios de Kubernetes pueden proporcionar y adjuntar a sus aplicaciones.
  • Volumen persistente (PV) : El volumen persistente es una instancia de almacenamiento virtual que se ha agregado al clúster como volumen. PV puede referirse al hardware de almacenamiento físico o al almacenamiento definido por software, como Ondat.
  • Declaración de volumen persistente (PVC) : Se trata de una solicitud de aprovisionamiento de un determinado tipo y configuración de almacenamiento.

4. Autocuración

La capacidad de autocuración de Kubernetes es una de sus características más atractivas. Si una aplicación en contenedor o un componente de la aplicación falla, Kubernetes la recargará automáticamente.

La función de orquestación de Kubernetes puede monitorear y reemplazar contenedores en mal estado según la configuración. Los pods son la unidad más pequeña que encapsula contenedores únicos o múltiples, y Kubernetes también puede repararlos.

En el proceso de autorreparación, el controlador de replicación realiza las siguientes tareas para garantizar la tolerancia a fallas o la disponibilidad de la aplicación.

  • Si el contenedor falla, Kubernetes lo reiniciará.
  • Si algún nodo falla, Kubernetes reorganizará los contenedores en otros nodos.
  • Si el contenedor no responde al cliente / usuario, Kubernetes terminará el contenedor.
Capa de operación de la aplicación
Capa de operación de la aplicación

5. Implementación y reversión automáticas

5.1. Lanzamiento

Aunque los desarrolladores quieren actualizar el código de la aplicación, el objetivo de la empresa es hacer que el tiempo de inactividad de la aplicación sea cero.La actualización de la aplicación se llama desenrollarEsto se hace mediante actualizaciones progresivas en Kubernetes.

Al actualizar gradualmente con nuevas instancias de Pod, las actualizaciones continuas permiten que las implementaciones se actualicen sin tiempo de inactividad. Los nuevos pods se organizarán en nodos con recursos disponibles.

Actualización progresiva de Kubernetes
Actualización progresiva de Kubernetes
  1. El cliente se actualiza con una nueva versión del POD, como la V2.
  2. En un conjunto de réplicas, solo se permite el uso de POD de la misma versión. Por lo tanto, Kubernetes creará el conjunto de réplicas 2, en el que se agregará una nueva versión de POD V2 y se garantizarán las verificaciones de estado. Una vez que el POD V2 esté funcionando bien, reemplazará uno de los POD V1.
  3. Seguirá las mismas reglas y reemplazará todos los POD V1 con POD V2.

5.2. Revertir

Cuando la implementación es inestable, como cuando se bloquea en un bucle, es posible que deba revertir la implementación. De forma predeterminada, el sistema guarda el historial de implementación de todas las implementaciones para que pueda retroceder en cualquier momento.

En la figura anterior, POD V1 se mantiene en el historial para que pueda retroceder si encuentra algún problema con la implementación de POD V2.

6. Mapeo de configuración y secretos

6.1. Secretos

Un secreto es un pequeño dato confidencial, como una contraseña, un token o una clave. O tal información puede incluirse en la especificación del Pod o en la imagen del contenedor.

Si usa Secret, no tiene que incluir datos confidenciales en su código de aplicación.Cuando se trata de confidencialidad, hay Dos niveles considerar.

El secreto debe crearse primero antes de poder introducirlo en el Pod. En lugar de poner datos confidenciales en una imagen de contenedor o una definición de Pod, es mejor mantenerlos confidenciales y más adaptables.

6.2. Configurar el mapeo

ConfigMap es un almacenamiento de pares clave-valor, que es un objeto API que se utiliza para almacenar datos no confidenciales. Los pods pueden usar ConfigMap como variables de entorno, parámetros de línea de comandos o archivos de configuración de volumen.

Le permite separar la configuración específica del entorno de la imagen del contenedor, lo que le permite portar fácilmente su aplicación.

La configuración de ConfigMaps se divide en dos etapas. El primer paso es hacer ConfigMaps y luego inyectarlos en pods.

Kubernetes Secret y ConfigMap
Kubernetes Secret y ConfigMap

7. Zoom horizontal

Cuando la demanda de la carga de trabajo aumenta o disminuye, Kubernetes puede aumentar o disminuir automáticamente la cantidad de copias de pod que realizan el trabajo.

El escalador automático de pod horizontal se implementa como un controlador y un recurso de API en Kubernetes. El comportamiento del controlador está determinado por el recurso.

El controlador ajusta periódicamente la cantidad de réplicas en el controlador de replicación o implementación para que coincida con las métricas observadas (como el uso promedio de CPU, el uso promedio de memoria o cualquier otra estadística personalizada) con los objetivos del usuario.

Zoom horizontal
Zoom horizontal

8. Conclusión

En este artículo, hemos realizado una comprensión conceptual de las características clave de Kubernetes. En el próximo artículo, profundizaremos en otros conceptos centrales de Kubernetes, como ETCD, Kube Controller Manager, Kube Scheduler, etc.

recurso:

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba