Se ha lanzado la versión 1.24 de la plataforma de orquestación de contenedores Kubernetes, que permite gestionar como un todo un clúster de contenedores aislados y proporciona mecanismos para desplegar, mantener y escalar aplicaciones ejecutadas en contenedores. El proyecto fue creado originalmente por Google, pero luego se trasladó a una plataforma independiente, supervisada por la Linux Foundation. La plataforma se posiciona como una solución universal desarrollada por la comunidad, desacoplada de sistemas específicos y capaz de funcionar con cualquier aplicación en cualquier entorno de nube. El código de Kubernetes está escrito en Go y se distribuye bajo la licencia Apache 2.0.
Se ofrecen funciones para desplegar y gestionar la infraestructura, como la gestión de la base de datos DNS, balanceo de carga, distribución de contenedores a través de los nodos del clúster (migración de contenedores según cambios de carga y necesidades de servicios), verificación de la operatividad a nivel de aplicaciones, gestión de cuentas, actualización y escalado dinámico del clúster en funcionamiento, sin necesidad de detenerlo. Es posible desplegar grupos de contenedores realizando operaciones de actualización y reversión de cambios al mismo tiempo para todo el grupo, así como segmentar lógicamente el clúster dividiendo los recursos. Se admite la migración dinámica de aplicaciones, cuyos datos pueden almacenarse en sistemas de almacenamiento locales o en red.
Cambios clave en la nueva versión:
- Se han estabilizado las herramientas para rastrear la capacidad de almacenamiento (Storage Capacity Tracking), que proporcionan monitoreo del espacio libre en las particiones y transmiten datos al nodo de control para evitar que se inicien pods en nodos donde no hay suficiente espacio libre.
- Se ha estabilizado la posibilidad de ampliar particiones de almacenamiento. El usuario puede cambiar el tamaño de las particiones existentes y Kubernetes automáticamente ampliará la partición y el sistema de archivos asociado sin detener su funcionamiento.
- Se ha interrumpido el suministro del runtime Dockershim, que se posicionaba como una solución temporal para utilizar Docker en Kubernetes, incompatible con la interfaz estándar CRI (container runtime interface) y que provoca una mayor complejidad en kubelet. Para gestionar contenedores aislados, se debe utilizar un runtime que soporte la interfaz CRI, como containerd y CRI-O, o hacer uso del wrapper cri-dockerd, que implementa la interfaz CRI sobre el API de Docker Engine.
- Se ha proporcionado soporte experimental para la verificación de imágenes de contenedores mediante firmas digitales utilizando el servicio Sigstore, que lleva un registro público para confirmar la autenticidad (transparency log). Para prevenir ataques de la cadena de suministro y la sustitución de componentes, también se ha asegurado la certificación con firmas digitales de los artefactos relacionados con las versiones, incluyendo todos los archivos ejecutables de Kubernetes que se instalan.
- Por defecto, se ha desactivado la inclusión de APIs en beta en los clústeres (las APIs de prueba añadidas en versiones anteriores se mantienen, el cambio solo afecta a nuevas APIs).
- Se ha implementado soporte de prueba para el formato OpenAPI v3.
- Se ha presentado una iniciativa para convertir los plugins para trabajar con almacenes a una interfaz unificada CSI (Container Storage Interface) manteniendo la compatibilidad a nivel de API. Los plugins de Azure Disk y OpenStack Cinder han sido convertidos a CSI.
- Se ha llevado a la etapa de beta testing el Kubelet Credential Provider, que permite extraer dinámicamente credenciales para el repositorio de imágenes de contenedores a través del lanzamiento de plugins, sin almacenar las credenciales en el sistema de archivos del nodo.
- Se ha proporcionado la opción de reservar un rango de direcciones IP para la asignación a servicios. Al activar esta opción, el clúster asignará automáticamente a los servicios solo IP direcciones del pool previamente asignado a cada servicio, lo que permite evitar colisiones al asignar direcciones libres del conjunto general.
Fuente: opennet.ru
