Guía rápida para Azure Kubernetes

Azure Kubernetes Service (AKS) es la oferta de servicios administrados de Kubernetes de Azure. Operar un clúster de Kubernetes en un centro de datos privado implica muchas tareas que consumen mucho tiempo. Con AKS, Azure se encarga de todo el trabajo de configuración y administración del clúster de Kubernetes para que pueda concentrarse más en su aplicación.

En este artículo, presentaremos los conceptos de AKS para ayudarlo a comenzar. Luego, crearemos un clúster de AKS mediante el portal web de Azure.

Arquitectura AKS

AKS es una oferta de Kubernetes certificada por Cloud Native Computing Foundation (CNCF). La certificación CNCF garantiza que AKS exponga las API requeridas, de forma similar a las versiones comunitarias de código abierto de Kubernetes. Por lo tanto, no tiene que preocuparse por la compatibilidad al migrar una aplicación entre Kubernetes de código abierto y AKS.

Un clúster de Kubernetes consta de un plano de control y un conjunto de nodos trabajadores. El plano de control es responsable de administrar los nodos y programar los contenedores. Los nodos ejecutan las cargas de trabajo en contenedores.

Plano de control

El plano de control de Kubernetes consta de varios componentes, como kube-apiserver, etcd, kube-scheduler, etc. En AKS, Azure administra completamente este plano de control, por lo que no tendrá acceso directo a él. Puede crear un nuevo clúster de AKS mediante la CLI de Azure o el portal web de Azure. Luego, puede usar la herramienta CLI `kubectl`, el panel de Kubernetes o la API de Kubernetes para interactuar con el clúster de AKS.

El plano de control de AKS es un inquilino único. Por lo tanto, estará dedicado a usted y no se compartirá con ninguna otra cuenta de usuario en Azure.

Un clúster de AKS puede ejecutar varias aplicaciones en contenedores. Puede usar los espacios de nombres de Kubernetes para aislar diferentes aplicaciones dentro del mismo clúster. Sin embargo, Kubernetes aún no implementa suficientes medidas de seguridad para aislar aplicaciones no seguras dentro del mismo clúster.

Puede superar este problema implementando varios clústeres de AKS. La creación de numerosos clústeres de Kubernetes en un centro de datos local podría aumentar exponencialmente la sobrecarga administrativa. Pero, dado que AKS es un servicio administrado, puede operar de manera eficiente varios clústeres de AKS sin ese trabajo adicional. Por ejemplo, si su organización tiene varios departamentos, cada departamento puede tener un clúster de AKS dedicado para ejecutar sus aplicaciones. Si bien Azure tiene un límite superior de 5000 clústeres de AKS como máximo para una sola cuenta, ese es un valor razonablemente grande para la mayoría de las organizaciones.

Nodos

Los nodos ejecutan las aplicaciones de carga de trabajo en contenedores. En un clúster de Kubernetes local, los nodos pueden ser máquinas virtuales o servidores completos. Pero los nodos de AKS son siempre máquinas virtuales de Azure. No puede tener nodos completos en AKS.

El componente principal del nodo es el tiempo de ejecución del contenedor, que es responsable de la ejecución real del contenedor. Desde la versión 1.19, AKS usa Container como tiempo de ejecución del contenedor. Las versiones anteriores de AKS han estado usando Moby, que es una versión ascendente de Docker.

AKS agrupa lógicamente los nodos en grupos de nodos. Al crear un clúster de AKS, también se crea un grupo de nodos predeterminado. Este grupo de nodos se denomina "grupo de nodos del sistema" porque contiene módulos críticos del sistema, como "CodeDNS" y "servidor de métricas".

Puede crear grupos de nodos adicionales, que se denominan "grupos de nodos de usuarios". Si bien puede implementar sus aplicaciones también en el "grupo de nodos del sistema", se recomienda utilizar "grupos de nodos de usuarios" separados para ese fin. Evitará que cualquier aplicación de usuario no segura altere los módulos del sistema en el "grupo de nodos del sistema".

Un clúster de AKS puede tener un máximo de 100 grupos de nodos. El clúster puede incluir un máximo de 1000 nodos en todos los grupos de nodos.

Contenedores sin servidor con AKS

Los nodos virtuales de Azure son una característica de AKS para ejecutar contenedores en un modo sin servidor. Basado en el proyecto de código abierto Virtual Kubelet, los nodos virtuales le permiten ejecutar contenedores sin aprovisionar máquinas virtuales como nodos de trabajo.

 Actualización de la versión de Kubernetes en AKS

En el momento de escribir este artículo, AKS admite las versiones 1.18, 1.19 y 1.20 de Kubernetes. A medida que la comunidad de Kubernetes de código abierto publique nuevas versiones de Kubernetes, AKS agregará soporte para las versiones más nuevas y las versiones anteriores quedarán obsoletas consecutivamente. Debe esperar actualizar sus clústeres de AKS al menos una vez al año para permanecer en una versión compatible en Azure.

Puede actualizar sus clústeres de AKS manualmente mediante la CLI de Azure o dejar que Azure realice las actualizaciones automáticamente. Si selecciona la opción de actualización automática, debe seleccionar uno de los tres modos de actualización; Parche, estable y rápido. Para comprender su comportamiento, debe conocer el patrón de nomenclatura de las versiones de Kubernetes. Consideremos la versión 1.19.3 como ejemplo. El `19` es la versión menor, y `3` es la versión parche.

El modo `parche` actualiza automáticamente el clúster a la última versión del parche, pero no actualizará la versión secundaria del clúster. La opción "estable" actualizará automáticamente el clúster a la versión uno antes de la última versión secundaria admitida.

Esta es la opción recomendada para la mayoría de las cargas de trabajo de producción. Si selecciona la opción "rápida", Azure actualizará automáticamente el clúster a la última versión compatible.

Alta disponibilidad en AKS

De forma predeterminada, AKS crea un clúster o un grupo de nodos en una sola zona de disponibilidad de Azure. Este tipo de clústeres o grupo de nodos podría dejar de estar disponible debido a una falla en la zona de disponibilidad particular. Para superar este problema, AKS puede implementar alta disponibilidad mediante la distribución del plano de control y los nodos en varias zonas de disponibilidad.

Esta opción de alta disponibilidad debe habilitarse en el momento de la creación del clúster o del grupo de nodos. No puede cambiar la configuración de alta disponibilidad en un clúster existente o un grupo de nodos.

Almacenamiento en AKS

Un contenedor se considera como una pieza efímera de componente, que se puede crear y destruir dinámicamente. Pero las aplicaciones en contenedores también necesitan almacenar algunos tipos de datos de forma permanente. Azure proporciona dos tipos de almacenamiento para almacenar datos.

1. Volúmenes: un volumen se define como parte de un pod. El ciclo de vida de un volumen está vinculado con el ciclo de vida de un pod, por lo que se elimina cuando se elimina el pod.

2. Volúmenes persistentes: si necesita que un volumen exista más allá del ciclo de vida de un módulo individual, debe usar "volúmenes persistentes". Un volumen persistente puede existir durante todo el ciclo de vida de una aplicación. Los volúmenes pueden ser Azure Disks o Azure Files. Un disco de Azure solo se puede conectar a un solo pod, pero varios pods pueden acceder a un volumen de tipo Azure Files simultáneamente.

Reparación automática de nodos

 Si elige implementar un clúster de Kubernetes en un centro de datos privado, usted es responsable de monitorear el estado de sus nodos de trabajo y tomar las medidas necesarias para restaurar los nodos que se vuelven defectuosos.

En AKS, los nodos son máquinas virtuales de Azure y Azure implementa un mecanismo para monitorear su estado. Si un nodo informa el estado "No listo" o no informa ningún estado al sistema de supervisión, Azure reinicia o vuelve a crear el nodo.

Aplicaciones de escalado en AKS

AKS admite dos funciones para escalar aplicaciones en contenedores.

El `Cluster Autoscaler` es el concepto de escalar el número de nodos de acuerdo con los requisitos de CPU/memoria solicitados de la aplicación.

El "Autoescalador de pod horizontal" es otra función de escalado en AKS. Agrega o elimina nodos en el grupo de nodos al monitorear el rendimiento de la aplicación.

Precios y SLA

AKS es de uso gratuito. No se le cobrará nada por la cantidad de horas que tuvo un clúster de AKS activo. Solo se le cobra por las máquinas virtuales que aprovisiona como nodos.

El SLA predeterminado para un clúster de AKS es 99.5%. Para las organizaciones que necesitan SLA más estrictos, AKS ofrece SLA de tiempo de actividad. Tiene que habilitarse por separado para cada clúster. Cuando el SLA de tiempo de actividad está habilitado, un clúster de AKS se cobra 0,10 USD por hora. AKS garantiza una disponibilidad de 99.95% para los clústeres habilitados para tiempo de actividad que se distribuyen en varias zonas de disponibilidad. Para clústeres en una sola zona de disponibilidad, Uptime SLA garantiza una disponibilidad de 99.9%.

es_CRES