Kubernetes ha ocupado gran parte de las charlas dentro de los equipos de TI, en la oficina y en el café. La tecnología de Kubernetes permite realizar orquestación de contenedores a escala y ha revolucionado el mundo de las aplicaciones al adecuarse a metodologías de desarrollo modernas, ágiles y a arquitecturas basadas en micro-servicios.
Si bien esta tecnología facilita enormemente el despliegue de aplicaciones modernas, un desafío crucial con el que han tenido que lidiar muchas empresas y organizaciones que emplean contenedores en gran escala, es lo que llamamos la “Operacionalización en el Día 2”.
Y es que una vez implementada la infraestructura de Kubernetes y contenedores, nos toca administrar y realizar troubleshooting sobre esa infraestructura, proteger ambientes, monitorear sus componentes y las aplicaciones contenerizadas, realizar un plan de contingencia y definir políticas de back up, así como asegurar los servicios de red dinámicos y escalables y garantizar la seguridad. Estas son algunas cuestiones que TI tiene que analizar para adecuar sus procesos, frecuentemente definidos para una virtualización más tradicional.
Desde hace más de tres años, VMware está trabajando en soluciones para que Kubernetes sea una realidad para todos sus clientes. De hecho, dos de los tres fundadores de Kubernetes hoy son parte de VMware. Como ejemplo concreto, brindaremos detalles sobre el proyecto Pacific, y cómo viene a facilitar la administración de este tipo de ambientes.
En la práctica, hemos visto que la arquitectura de una aplicación moderna no solo posee servicios en contenedores, sino que muy frecuentemente cuenta e interactúa con componentes ejecutándose en máquinas virtuales. Y es por esto que TI debe administrar mundos disimiles (VMs por un lado y clusters de contenedores por el otro), aunque desea desplegar aplicaciones fácilmente en todas las etapas de desarrollo, manejar las redes centralizadamente y simplificar la gestión de roles, entre otras cuestiones. Algo a destacar: ¡Es común en el mercado que los contenedores se ejecuten sobre máquinas virtuales!
A través del proyecto Pacific, VMware une el mundo de los contenedores y el de las máquinas virtuales. Lo que se hizo fue incluir Kubernetes en el Kernel de nuestro Hipervisor y plano de control (vCenter Server). De esta forma, logramos la posibilidad de administrar máquinas virtuales, containers y clusters completos de kubernetes de forma centralizada:
Apuntamos a crear una solución de colaboración entre desarrolladores y los operadores de TI. Por un lado, el desarrollador trabajando en el código de la aplicación y aprovisionando ambientes a través de línea de comando. Por otro lado, el operador de TI teniendo visión completa sobre toda la aplicación y sus métricas para el monitoreo, seguridad y redes.
Pacific se integra con nuestras soluciones de virtualización de redes (NSX) y almacenamiento (vSAN) para complementar la arquitectura y poder definir las redes, capacidad de disco y políticas de seguridad a nivel de contenedor o de máquina virtual.
Analicemos un ejemplo práctico para comprender bien el concepto: Integrar esta nueva metodología de trabajo en vSphere, le permite al desarrollador interactuar directamente con la infraestructura de la misma forma que lo hace hoy con Kubernetes. Entonces, el desarrollador utilizará la línea de comando para aprovisionar un container, una máquina virtual o un cluster completo de Kubernetes en la plataforma de virtualización. Todo con lenguaje declarativo. Como lo hace hoy con Kubernets o containers tradicionales. Porque si utilizamos el plano de control de Kubernetes para containers, ¿Por qué no usarlo para máquinas virtuales?
Como es de esperar, la evolución de esta tecnología nos permitirá definir recursos adicionales personalizados tales como Bases de datos, funciones Serverless, etc.
¿Y qué ocurre entonces con los operadores de IT?
Mencionaba antes que hemos integrado Kubernetes en el plano de control. Ahora tenemos Namespaces como elemento de administración en vCenter Server y contamos todas las herramientas de visualización necesarias para operarlos. Podemos entonces tomar acciones sobre los Namespaces: definir el acceso basado en roles para cada proyecto y cada desarrollador; definir cuotas de recursos de infraestructura como CPU y memoria; definir las políticas de almacenamiento en términos de capacidad o performance integradas con vSAN; definir las redes y la comunicación entre contenedores con NSX.
En la vista de vCenter Server de abajo podemos apreciar gran parte de los elementos antes mencionados: “Namespace (RP)” corresponde al namespace del proyecto que tienen acceso los desarrolladores. Dentro del mismo, creamos límites de recursos en tres clusters de Kubernetes y, por último, tenemos vistas con información para monitorear nuestra aplicación. Todo integrado en una única plataforma, administrable y operable de manera consistente y por el staff existente.
Desde hace veinte años VMware revoluciona el mercado con la virtualización de servidores. A partir de allí, comenzó a desarrollar la visión del Data Center definido por Software para agilizar los procesos de aprovisionamiento, mejorar downtime y reducir los costos. Hoy en día, somos el segundo contribuidor más grande de Kubernetes en la CNCF. Con el proyecto Pacific, tenemos la visión de acercar Kubernetes a todos nuestros clientes, facilitando su adopción y operación según las necesidades de ambientes corporativos.
Asesoró: Mauro Bulacio, Solution Engineer – VMware South of Latam