Nuevo Kubernetes 1.14: contenedores Windows usando Docker
CLOUD NATIVE, INFRAESTRUCTURA.Ha salido la nueva versión del popular orquestador de contenedores Kubernetes v1.14 y entre sus nuevas funcionalidades se destaca el soporte para nodos de Windows, actualizaciones de Kubectl y volúmenes persistentes locales.
En este post nos enfocamos en una característica muy atractiva: Kubernetes soporta contenedores de Windows con Docker.
¿Por qué es importante que Kubernetes soporte Docker y Windows?
El soporte Windows en Kubernetes es un paso monumental para la industria y confirma aún más el trabajo que Docker ha estado haciendo con Microsoft para desarrollar contenedores Windows en los últimos cinco años.
Es evidente que los contenedores no son solo para Linux; Las aplicaciones Windows y .NET representan una huella importante y considerable de aplicaciones que pueden beneficiarse tanto de la plataforma Docker como de Kubernetes.
La colaboración de Docker con Microsoft comenzó hace cinco años. Hoy, todas las versiones de Windows Server desde 2016 incluyen el motor Docker - Enterprise. Adicionalmente, para facilitar una buena experiencia de usuario con contenedores en Windows. Microsoft publicó más de 129 imágenes en contenedores de Windows de su popular software en Docker Hub.
Muchos usuarios de Docker-Enterprise ya están ejecutando contenedores mezclando Windows y Linux con Docker Swarm. Pero ahora, Kubernetes ofrece soporte nativo para contenedores Windows en un paso muy importante.
Hasta ahora el soporte para Nodos de Windows en Kubernetes ha estado en beta, lo que ha permitido que los usuarios experimenten y descubran el valor de Contenedores de Windows. Hoy esta funcionalidad está liberada en calidad de Producción permitiendo dar el paso final en proyectos críticos.
¿Qué ofrece la versión 1.14 de Kubernetes para Contenedores Windows?
Kubernetes soporta oficialmente agregar nodos de Windows como ‘worker nodes’ y asignar contenedores de Windows en estos nodos. Esto abre las puertas a un gran ecosistema de aplicaciones de Windows donde las empresas podrán usar una misma plataforma – Kubernetes – tanto para cargas de trabajo de Linux como de Windows.
Algunas de funcionalidades claves de Windows en Kubernetes son:
Soporte para Windows Server 2019 para nodos de trabajo (worker nodes) y contenedores.
Spporte para redes de árbol (tree networking) para Azure-CNI, Openswith (OVN-Kubernetes) y Flannel.
Soporte extendido para pods, service types, workload controller así como métricas y cuotas (quotas) muy similares a las ofrecidas para contenedores Linux.
¿Cómo funcionan los contenedores Windows en Kubernetes?
Para mayor información sobre cómo funcionan los contenedores Windows en Kubernetes, puede referirse a la introducción a contenedores Windows en Kubernetes.
Además Docker anunció que en un próximo lanzamiento (posiblemente en DockerCon San Francisco 2019) permitirá a sus clientes expandir sus opciones de Windows a Kubernetes ya que, al día de hoy los usuarios de Docker-Enterprise y Docker-Desktop han encontrado que el camino más sencillo para usar y administrar Kubernetes es con Docker, pero ahora estos usuarios tendrán los mismos beneficios con contenedores Windows también.
Desde el lanzamiento del primer Windows Server, Docker ha estado trabajando muy de cerca con los usuarios con el fin de entender cómo hacer que las aplicaciones de Windows en contenedores estén listas para producción.
Según Docker, basados en su experiencia, el soporte en tiempo real para contenedores basados en Windows es solo uno de los componentes que las empresas requieren para hacer contenedores Windows con Kubernetes operativos en su entorno.
Soporte de gMSA en Kubernetes para Aplicaciones autenticadas de Active Directory
Otro requerimiento es el soporte para configurar las cargas de trabajo en los contenedores con credenciales de dominio e identidad en un entorno Active Directory. Inicialmente Docker trabajó con Microsoft para instalar el soporte de la credencial de gMSA para contenedores individuales ejecutándose sobre el motor Docker en Windows.
Luego, implementaron un soporte de orquestador para credenciales gMSA en Swarm. Ahora están liderando el diseño e implementación del soporte de gMSA para cargas de trabajo de Windows en Kubernetes, entregando un soporte de nivel Alpha para el soporte de gMSA en kubernetes 1.14
Muchas aplicaciones basadas en Windows están ejecutadas en hosts de dominio unido y uso de cuentas de servicio administradas por Active Directory para acceder a otros recursos y servicios en el dominio.
Los contenedores Windows, como sea, no son objetos de dominio unido completamente. Por el contrario pueden ejecutarse con un tipo especial de servicio de cuenta presentado en Windows Server 2012 llamado grupo de administración de servicio de cuentas (gMSA, por sus siglas en inglés).
Windows usa credenciales asociados a gMSA para permitir a las aplicaciones de Windows acceder a otros servicios en el dominio de Active Directory.
Docker, en colaboración con Microsoft y la comunidad de Kubernetes, está trabajando para agregar soporte para gMSA en Kubernetes. Esto requiere:
Recursos personalizados para configurar credenciales específicas para gMSA en un cluster amplio.
Autorización y resolución de referencias para las credenciales específicas de gMSA desde especificaciones de POD.
Pasar la especificación JSON completa de la credencial gMSA al contenedor.
Esta característica está en alpha con Kubernetes 1.14.
Kubernetes y Windows: ¿Qué sigue?
Los administradores y usuarios de Windows también necesitan redes de superposición y almacenamiento provisto dinámicamente. Para esto Docker está trabajando junto con la comunidad de Kubernetes en estas áreas y esperan demostrar esto en el DockerCon 2019 que se celebrará en San Francisco.
Si su organización tiene interés en conocer y trabajar con tecnologías como Amazon AWS, Docker o Kubernetes , lo invitamos a contactarnos.