Noticias

Contenedores de Windows en Kubernetes con MicroK8s

Kubernetes organiza grupos de máquinas para ejecutar cargas de trabajo basadas en contenedores. Sobre la pulvínulo del éxito del maniquí de exposición basado en contenedores, proporciona las herramientas para efectuar contenedores de modo confiable a escalera. Sin requisa, la metodología de exposición basada en contenedores es popular fuera del ámbito del código hendido y Linux. Exactamente los mismos beneficios de los contenedores (bajo costo de fortuna, distribución de dependencias, ciclos de exposición más rápidos, portabilidad y operación consistente) se aplican además a las aplicaciones dirigidas al sistema operante Windows. En este artículo, presentaremos los pasos para implementar cargas de trabajo de Windows en Kubernetes, con trabajadores de Windows de MicroK8.

Los gobernadores tienen Windows

No hay planes para desarrollar código para un clúster de Kubernetes solo para Windows. El plano de control y los componentes maestros (kube-apiserver, kube-planificador, kube-controller), en el futuro previsible, solo se ejecutarán en un sistema operante Linux. Sin requisa, es posible ejecutar los servicios necesarios para un nodo de Kubernetes en Windows.

Esto significa que se puede utilizar un nodo trabajador para ejecutar cargas de trabajo de Windows, mientras que el plano de control se ejecuta en Linux, un clúster híbrido. El soporte de nivel de producción para ejecutar un nodo de Windows se introdujo con la lectura 1.14 de Kubernetes en marzo de 2019, por lo que en términos de implementación de contenedores de Windows, los operadores pueden esperar exactamente las mismas características para las cargas de trabajo de Windows que para las de Linux.

Los componentes de Kubernetes necesarios para un nodo trabajador son:

  • kubelet: este es el agente de Kubernetes que administra e informa sobre los contenedores en ejecución en un pod.
  • kube-proxy: un componente de proxy de red que mantiene las reglas de la red y permite que los pods se comuniquen adentro o fuera del resto del clúster.
  • un tiempo de ejecución de contenedor: el ejecutable responsable de ejecutar contenedores individuales. En verdad, Kubernetes ahora admite varios tiempos de ejecución de contenedores diferentes: Docker, CRI-O, containerd (y, a través de eso, muchos otros, como los runhcs específicos de Windows), así como cualquier otro que admita la interfaz de tiempo de ejecución de contenedores (CRI) de Kubernetes.
Diagrama de bloque de Kubernetes

Componentes del clúster de Kubernetes (imagen CC BY 4.0 Los autores de Kubernetes).

Por supuesto, es posible instalar manualmente estos componentes en una máquina con Windows y construir un nodo, luego integrarlo en un clúster existente. Sin requisa, hay formas más fáciles de alcanzar esto.

MicroK8s y Calico

Para la parte basada en Linux de un clúster híbrido de Kubernetes, MicroK8s es una opción atractiva. MicroK8s es una implementación mínima de Kubernetes que puede ejecutarse en una computadora portátil promedio, pero tiene características de nivel de producción. Es ideal para el exposición, la creación de prototipos y las pruebas fuera de serie y, si es necesario, además puede obtener soporte profesional a través de Ubuntu Advantage.

¡La característica más convincente de MicroK8 para este caso de uso es que puede ejecutarlo casi de forma nativa en Windows 10! Para el trabajo de exposición e incluso los casos de uso de producción, esto es muy útil: su clúster híbrido puede residir en una máquina Windows física. MicroK8s en Windows funciona mediante el uso de Multipass, una forma ordenada de ejecutar una máquina aparente de Ubuntu en Windows. Sin requisa, el instalador de MicroK8s para Windows no requiere ningún conocimiento de múltiples pasadas o incluso máquinas virtuales, configura todo con solo unas pocas opciones del instalador.

Para obtener el instalador flagrante y ver las (simples) instrucciones de instalación para MicroK8s en Windows, visite el sitio web de MicroK8s.

Ya sea que use MicroK8 en Windows o en una máquina Linux separada, lo próximo que debe considerar es la conexión en red. Calico ha sido el CNI (Container Network Interface) predeterminado para MicroK8s desde la lectura 1.19. La CNI maneja una serie de requisitos de red:

  • Comunicaciones de contenedor a contenedor
  • Comunicaciones pod-to-pod
  • Comunicaciones Pod-to-Service
  • Comunicaciones externas al servicio

La popularidad de Calico se ha ido acumulando durante algún tiempo sobre los CNI más simples, ya que admite funciones más aperos (por ejemplo, Border Gateway Protocol [#ref]) y además está habitable en una lectura empresarial compatible.

De modo útil, Calico ya incluye los ejecutables de Windows para este CNI en un script de instalación que además obtiene los otros componentes necesarios para un nodo de Windows, lo que facilita mucho la instalación y configuración. El sitio web de Calico tiene instrucciones completas para esto. Esto contiene no solo enlaces al script del instalador, sino además una explicación detallada sobre cómo funciona la configuración. Si solo está interesado en comenzar a unir un trabajador de Windows con MicroK8s, hay instrucciones más concisas y específicas en la documentación de MicroK8s.

Programación de contenedores de Windows en Kubernetes híbridos

El paso final de este delirio es implementar algunos contenedores de Windows. Con un clúster híbrido, podría estar ejecutando contenedores basados ​​en Windows o Linux y Kubernetes necesitará alguna forma de conocer en qué nodos implementarlos.

Una explicación de pod para una carga de trabajo de Windows debe contener un campo selector de nodos que identifique que se ejecutará en Windows. El flujo de trabajo adicional recomendado es usar las funciones de ‘taints and tolerations’ de Kubernetes, para recusar explícitamente las implementaciones en los nodos de Windows en cualquier pod que no las haya solicitado específicamente. Hay una explicación completa de este flujo de trabajo en la documentación auténtico de Kubernetes.

Más de MicroK8s

Hay mucho más que puede hacer con un clúster de MicroK8s: asegúrese de consultar la documentación de los complementos de MicroK8s para que pueda habilitar el tablero, los controladores de entrada, Kubeflow y más.

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