¿Qué es AKS?
Azure Kubernetes Service (AKS) es un servicio gestionado de Kubernetes de Microsoft Azure que tiene como objetivo simplificar la implementación y la gestión de clústeres de Kubernetes. Para lograr esto, AKS pasa las tareas operativas de gestión de clústeres a Azure, donde este último gestiona el plano de control de Kubernetes y simplifica la configuración de los nodos de trabajo. El servicio AKS en sí es gratuito y sólo tienes que pagar por el tiempo de actividad del nodo de trabajo.
Usar AKS tiene muchas ventajas:
- Desarrollo de aplicaciones más rápido: AKS se encarga de la aplicación de parches, la actualización automática, la monitorización, el escalado y la reparación automática. De esta forma se libera a los equipos de desarrollo de las tareas operativas para que puedan concentrarse en la creación de servicios.
- Utilización dinámica de recursos: como servicio completamente gestionado, AKS te permite implementar y ejecutar rápidamente servicios en contenedores usando una infraestructura flexible que se amplía con la demanda, sin la necesidad de gestionar ningún componente de Kubernetes directamente.
- Seguridad y cumplimiento: AKS cumple con varios estándares, entre ellos PCI-DSS o SOC.
¿Qué es Kubernetes?
Kubernetes es un sistema de orquestación de código abierto que facilita la implementación y el escalado de cargas de trabajo en contenedores. A pesar de su popularidad y uso generalizado, implementar y mantener manualmente un clúster de Kubernetes sigue siendo una tarea compleja. Azure Kubernetes Service (AKS) de Microsoft ayuda a los ingenieros a gestionar los clústeres de Kubernetes. Con AKS, se facilitan las tareas operativas de gestión de entornos de Kubernetes.
Los contenedores son un método excelente de agrupar y ejecutar aplicaciones, pero su ejecución en producción implica varios desafíos, entre los que se incluyen:
- Gestión de la conmutación por error
- Escalado horizontal
- Detección de servicios
- Implementación de diferentes patrones de implementación
- Seguridad de los contenedores
Más información
Lee nuestra publicación sobre seguridad de los contenedores para obtener más información sobre lo importante que es y las prácticas recomendadas para garantizar que todos los contenedores permanezcan protegidos.
Capacidades de Kubernetes
Entre algunas de las principales capacidades de Kubernetes se incluyen:
Detección de servicios
Las cargas de trabajo alojadas en Kubernetes se pueden detectar y ver automáticamente a través de DNS o direcciones IP, lo que hace que sea más fácil para otras cargas de trabajo encontrar esos servicios e iniciar la comunicación.
Equilibrio de carga
Con las cargas de trabajo abstraídas como servicios, Kubernetes puede ofrecer capacidades básicas de equilibrio de carga entre varias réplicas de la misma carga de trabajo.
Orquestación del almacenamiento
Kubernetes facilita el montaje de un sistema de almacenamiento para que lo puedas utilizar en tu contenedor para conservar los datos. Kubernetes puede integrarse con el almacenamiento local de un nodo y con volúmenes remotos alojados en la nube.
Implementación de cargas de trabajo
Las cargas de trabajo alojadas en Kubernetes se describen de forma declarativa y el motor de Kubernetes se encarga de la implementación real, al garantizar que estén presentes todas las dependencias necesarias. Al usar conceptos como la implementación, las cargas de trabajo se pueden declarar fácilmente, incluidas sus estrategias de implementación y reversión.
Empaquetado de ubicaciones
Kubernetes te permite especificar la cantidad de recursos (solicitudes y límites) que cada réplica de carga de trabajo puede usar. Esto permite un mejor uso de los recursos informáticos, evitando recursos malgastados y protegiendo para que las cargas de trabajo no usen los recursos de otras cargas de trabajo.
Reparación automática
Gracias a las sondas de actividad, preparación y puesta en marcha, Kubernetes garantiza que los servicios estén en buen estado y sean capaces de recibir tráfico, reiniciándolos cuando sea necesario.
ConfigMaps y Secrets
ConfigMaps y Secrets facilitan que las cargas de trabajo obtengan los parámetros de configuración, los detalles de conexión y las credenciales necesarios desde ubicaciones centralizadas y seguras. Esto permite reducir la dependencia de gestores de secretos o configuraciones de terceros.
Componentes de Kubernetes
Kubernetes consta de varios componentes que se ejecutan entre un plano de control y nodos de trabajo. Los componentes del plano de control gestionan las funciones administrativas de un clúster de Kubernetes. Estos componentes toman decisiones que afectan al funcionamiento general del clúster. Diferentes componentes se encargan de gestionar diferentes tareas.
| Componente | Descripción |
|---|---|
| kube-apiserver | Toda comunicación con un clúster de Kubernetes se realiza a través de kube-apiserver. Este componente muestra la API de Kubernetes y actúa como su "interfaz". Por su naturaleza, kube-apiserver se puede escalar horizontalmente para gestionar una carga cada vez mayor. |
| etcd | El motor de Kubernetes utiliza etcd, un repositorio de claves y valores, para almacenar toda la información relacionada con el clúster, como nuevos recursos, configuraciones, actualizaciones, entre otros elementos. |
| kube-scheduler | Este componente se encarga de programar nuevos pods. kube-scheduler busca pods que no tengan ningún nodo asignado y decide dónde programarlos. Toma decisiones complejas sobre programación, teniendo en cuenta factores como los requisitos de hardware o las restricciones de afinidad y no afinidad. |
| kube-controller-manager | kube-controller-manager ejecuta los procesos del controlador. Los clústeres de Kubernetes pueden tener varios controladores (por ejemplo, un controlador de nodos o un controlador de trabajos), y kube-controller-manager garantiza que los controladores se ejecuten correctamente. |
| cloud-controller-manager | cloud-controller-manager ejecuta controladores específicos para diferentes proveedores de servicios en la nube. Esto facilita el uso de la funcionalidad de un proveedor específico (como la creación de volúmenes de disco) cuando sea necesario. Los componentes del nodo se ejecutan en cada uno de los nodos de trabajo, y cada clúster debe tener al menos un nodo de trabajo. Los componentes del nodo realizan tareas como garantizar que los pods se estén ejecutando o indicar el estado del nodo a kube-apiserver. |
| kubelet | kubelet se ejecuta en cada nodo de trabajo y confirma que los contenedores se estén ejecutando y funcionen correctamente. Para garantizar esto utiliza especificaciones de pod. |
| kube-proxy | Este proxy de red de Kubernetes gestiona las reglas de red a nivel de nodo y facilita la implementación de la abstracción de servicios. |
| Tiempo de ejecución de contenedores | Un tiempo de ejecución de contenedores ejecuta contenedores. Cada nodo necesita un tiempo de ejecución de contenedores. Además, Kubernetes admite varios tiempos de ejecución, como containerd o CRI-O. |
8 capacidades de AKS
Algunas de las capacidades de Azure Kubernetes Service (AKS) incluyen:
1. Integración de Entra ID (Azure ID)
AKS permite una integración sencilla en el servicio Entra ID (anteriormente Azure AD). Puedes otorgar a los usuarios y grupos de AD existentes acceso al entorno del clúster a través del inicio de sesión integrado, lo que simplifica la gestión de usuarios. También puedes proteger el acceso al clúster para esas identidades existentes.
2. Registro y monitorización integrados
La ejecución de cargas de trabajo implica monitorizar su rendimiento y capacidad para evitar interrupciones no deseadas. Azure Monitor te permite recopilar métricas de contenedores, nodos, clústeres y logs de componentes de AKS. Azure mejora tu capacidad para almacenar esos datos en un espacio de trabajo de Log Analytics y hace que estén disponibles para usarse a través del portal de Azure, de la CLI de Azure o de la API de Azure.
3. Escalado de nodos y pods de clústeres
Los clústeres de Kubernetes deben ampliarse o reducirse según la demanda. Esto implica tanto el escalado de pods como de nodos. El escalador automático de clústeres de AKS puede cambiar el tamaño de los clústeres de Kubernetes automáticamente ajustando la cantidad de nodos para adaptarse al tráfico de la aplicación.
4. Nodos compatibles con GPU
Los nodos compatibles con GPU son idóneos para tareas que requieren un uso intensivo de recursos informáticos, como el procesamiento de gráficos o el aprendizaje automático. AKS agiliza el aprovisionamiento de estos tipos de nodos y su conexión a clústeres de Kubernetes bajo demanda.
5. Actualizaciones de nodos del clúster
Las versiones de la API de Kubernetes cambian con frecuencia y las empresas que ejecutan conjuntos de clústeres de Kubernetes de gran tamaño pueden perder rápidamente la pista de qué versiones están ejecutando para diferentes cargas de trabajo en distintos entornos. AKS permite la ejecución de varias versiones de Kubernetes simultáneamente, lo que te otorga tiempo para probar la funcionalidad antes de actualizar. Una vez que decides actualizar, AKS se encarga de actualizar el clúster y mover las cargas de trabajo a los nodos que ejecutan la nueva versión, lo que reduce el número de interrupciones.
6. Compatibilidad con volúmenes de almacenamiento
La mayoría de las aplicaciones, ya estén incluidas en contenedores o no, necesitan conservar la información. Es posible que algunas aplicaciones en contenedores necesiten acceder al mismo volumen de almacenamiento después de que sus pods se programen en un nuevo nodo. AKS permite a las cargas de trabajo aprovisionar volúmenes estáticos o dinámicos para datos persistentes.
7. Compatibilidad con imágenes de Docker y con su propio registro de contenedores privado
AKS es compatible con OCI y admite el formato de imágenes de Docker. Azure también admite registros de imágenes privados al ofrecer Azure Contenedor Registry (ACR), que se integra fácilmente en AKS.
8. Redes virtuales de Azure
AKS ofrece dos modelos de red: Kubenet y red Azure Container Networking Interface (CNI). Puedes definir la configuración de red que desees y AKS se encargará de la implementación.
Más información
Lee nuestra publicación en la que se comparan las tecnologías de contenedorización de Kubernetes y Docker, así como las ventajas de su uso conjunto.
El desafío de Kubernetes autogestionado
Dada la naturaleza compleja de los componentes enumerados anteriormente, para ejecutar y gestionar un clúster de Kubernetes a escala se necesita esfuerzo y experiencia. Además de los componentes de infraestructura subyacentes (como servidores, almacenamiento y redes), todos los componentes que se han descrito anteriormente deben estar instalados para que Kubernetes funcione. También deben protegerse, mantenerse, ampliarse y actualizarse cuando sea necesario.
Para ejecutar tu clúster de Kubernetes personalizado puede que sea necesario contratar a un equipo específico de ingenieros para todas las tareas operativas. Esto resulta útil si tu actividad principal es crear herramientas para el ecosistema de Kubernetes o si tienes algún requisito que te obliga a ejecutar tus propios clústeres. Sin embargo, en la mayoría del resto de casos, es mejor delegar estas tareas de gestión de clústeres a un servicio dedicado. Aquí es donde entra en juego AKS.
Además de gestionar la mayoría de los aspectos operativos de la ejecución de clústeres de Kubernetes, AKS ofrece algunas funciones adicionales que la convierten en una plataforma atractiva para organizaciones que ejecutan cargas de trabajo en contenedores.
Cómo puede facilitar CrowdStrike el registro de AKS
Kubernetes facilita la ejecución de cargas de trabajo en contenedores. Aborda problemas como la detección de servicios y la corrección automática. Sin embargo, mantener un sistema basado en Kubernetes a escala no es una tarea sencilla. Azure Kubernetes Service puede abstraer muchas de estas tareas operativas, como la gestión del plano de control y la asignación dinámica de recursos.
Los logs de cargas de trabajo alojadas en AKS son útiles para la depuración de aplicaciones y se pueden utilizar para la detección de amenazas. CrowdStrike Falcon® LogScale es una plataforma de registro de SaaS que puede almacenar volúmenes ilimitados de logs de tu clúster de AKS y de otras fuentes.
¿Cómo facilita CrowdStrike el registro de AKS?
Permite a tu organización ejecutar consultas potentes en tus logs, crear paneles y configurar alertas.