Gestione los nodos Lingjun como un grupo mediante un node pool de Lingjun: cree el pool, agregue y quite nodos, actualice kubelet y resuelva escenarios comunes de operación y mantenimiento.
Alcance aplicable
Tipo de clúster Lingjun: Basic Lingjun Cluster Service (Lite).
Tipo de clúster ACK: clúster administrado Pro de ACK, versión 1.31 o posterior. Si necesita actualizarlo, consulte Manually upgrade a cluster.
-
Node pool de Lingjun del clúster ACK:
Versión del kernel del sistema operativo: 5.10 o posterior.
-
Versión de cgroup del sistema operativo: la comunidad de Kubernetes es compatible con cgroup v2 desde la versión 1.26 y dejó obsoleto cgroup v1 en la 1.35. Si la versión del clúster es 1.35 o posterior, los nodos deben usar una imagen de sistema operativo que utilice cgroup v2. No se pueden agregar al clúster ACK nodos que usen un sistema operativo con cgroup v1.
Cuando actualice un clúster ACK de una versión anterior a la 1.35 hacia la 1.35 o posterior, los nodos deben usar un sistema operativo con cgroup v2. De lo contrario, la actualización del clúster fallará. Para obtener más información, consulte Migrate nodes to cgroup v2.
-
Red del clúster ACK:
Solo se admiten clústeres de pila única IPv4. Los clústeres de doble pila IPv6 no son compatibles.
-
Solo se admite el modo ENI exclusiva de Terway.
-
Asegúrese de que el Pod vSwitch que utiliza el node pool de Lingjun del clúster ACK incluya la zona donde reside el clúster Lingjun.
El Pod vSwitch del clúster ACK se configura durante su creación. Después de crear el clúster ACK y antes de agregar nodos Lingjun, también puede configurarlo si modifica el PodVswitchId parámetro de terway-eniip. Para consultar el procedimiento, vea Modify the vSwitch for Pods .
-
-
Versiones de los add-ons del clúster ACK:
Al crear un clúster administrado Pro de ACK, se usan las versiones más recientes de los add-ons de forma predeterminada. Si crea un node pool de Lingjun en un clúster existente que ya utiliza alguno de los siguientes add-ons, upgrade the add-ons a las versiones indicadas.
Requisitos previos
Create a Lingjun cluster. Seleccione Basic Lingjun Cluster Service y agregue nodos a un grupo de nodos Lingjun.
Create an ACK managed cluster. Seleccione la edición Pro. El clúster debe estar en la misma región y en la misma VPC que el clúster Lingjun.
Create an ECS node pool. Esta configuración se establece al crear el clúster administrado de ACK. Mantenga como mínimo tres nodos ECS para desplegar algunos componentes de control de ACK con alta disponibilidad.
-
Instale los add-ons del clúster ACK.
En la página Add-ons, instale el add-on ack-rdma-device-plugin.
Si los nodos Lingjun usan Lingjun Link, debe solicitar por separado la lista de permitidos del add-on ACK VPD CNI. Antes de crear un node pool de Lingjun, instale el add-on ACK VPD CNI en la página Add-ons.
-
Si los nodos Lingjun son nodos PPU, también debe instalar los add-ons ack-ppu-device-plugin y ack-ppu-exporter.
ImportanteCuando crea un node pool que contiene nodos conectados a Lingjun, ACK agrega automáticamente los bloques CIDR del grupo Lingjun al security group del clúster y permite el acceso entrante. Además, ACK añade la etiqueta
alibabacloud.com/lingjun-network-type: vpdal node pool. No elimine esta etiqueta.
Crear un node pool de Lingjun
Configure los ajustes del node pool en la consola, incluidos los parámetros básicos, de red y de almacenamiento. Algunos ajustes, sobre todo los relacionados con la disponibilidad y la red del node pool, no se pueden modificar después de crearlo. La creación de un node pool no afecta a los nodos ni a las cargas de trabajo de los node pools existentes.
Notas previas a la creación
De forma predeterminada, un node pool de Lingjun almacena los datos del entorno de ejecución de contenedores en el disco del sistema. Asegúrese de reservar suficiente espacio libre para el directorio del entorno de ejecución de contenedores. La falta de espacio en disco provoca la expulsión de pods o anomalías en los nodos.
Los nuevos node pools de Lingjun solo admiten the Terway exclusive ENI mode para la comunicación de red VPC. Asegúrese de que limit on the number of pods per node cumpla con sus requisitos de negocio.
-
Los nodos de un node pool de Lingjun incluyen de forma predeterminada el taint
node-role.alibabacloud.com/lingjun: NoSchedule. Esto evita que los componentes del sistema (excepto los DaemonSets) se programen en nodos Lingjun y consuman recursos. Si desea que los pods se programen en nodos Lingjun, añada una tolerancia para este taint a los pods. Así, solo las cargas de trabajo específicas se programarán en dichos nodos. También puede reemplazarlo por un taint personalizado que se ajuste a sus necesidades para lograr el mismo efecto.Este taint se elimina una vez que los add-ons cumplen con minimum version requirements . Sin embargo, al quitarlo, los componentes del sistema u otras cargas de trabajo podrían programarse en nodos Lingjun y consumir recursos de nodos GPU costosos.
Para consultar la lista completa de etiquetas que un node pool incluye de forma predeterminada, revise la descripción del ajuste node labels. No elimine las etiquetas predeterminadas.
Procedimiento
En la página Clústeres de ACK, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en .
-
Haga clic en ... > Create Lingjun Node Pool y siga las instrucciones en pantalla para crear el node pool de Lingjun.
Una vez creado el node pool, algunos ajustes se modifican al editar el node pool. En las siguientes tablas, Modificable indica si un ajuste se cambia después de crear el node pool.
-
Configuración básica
Ajuste
Descripción
Modificable
Node Pool Name
Nombre personalizado del node pool.
Sí
Region
De forma predeterminada, se selecciona la región donde reside el clúster actual y no se puede cambiar.
No
Configure Managed Node Pool
Función de lista de permitidos
Habilite el node pool administrado para usar las capacidades automatizadas de operación y mantenimiento que proporciona ACK.
Sí
Container Runtime
Solo se admite containerd.
No
-
Lingjun Resources
Ajuste
Descripción
Modificable
Lingjun Cluster
Seleccione un clúster Lingjun de tipo Lite que esté en la misma VPC que el clúster ACK.
No
Lingjun Group
Seleccione un grupo Lingjun que esté en la misma VPC que el node pool de Lingjun y que no esté asociado a ningún node pool de Lingjun.
No
Worker RAM Role
Especifique un rol de RAM de worker para el node pool de Lingjun. Tras configurarlo, los nuevos nodos escalados horizontalmente en el grupo Lingjun heredan automáticamente este rol.
Primero debe seleccionar un grupo Lingjun. Solo los tipos de instancia Lingjun que usan un disco en la nube como disco del sistema permiten configurar un rol de RAM de worker. Si el grupo Lingjun seleccionado no es compatible con esta función, este ajuste no se muestra.
Default Role: usa el rol de RAM de worker que ACK crea automáticamente y cuya entidad de confianza es Lingjun Intelligent Computing. Si este rol no existe en el clúster, se crea y se vincula automáticamente a este node pool cuando lo crea.
Custom Role: usa un rol de RAM específico. Solo se pueden seleccionar roles de RAM cuya política de confianza incluya a Lingjun Intelligent Computing (
eflo-controller.eflo.aliyuncs.com) como servicio de confianza. Para obtener más información, consulte Use custom worker RAM roles.
Si el grupo Lingjun seleccionado ya tiene un rol de RAM configurado, este ajuste selecciona automáticamente Custom Role y queda fijado al rol de RAM actual del grupo. No se puede cambiar ni volver a Default Role.
ImportanteSi el grupo Lingjun ya tiene un rol de RAM configurado, el rol de RAM del node pool debe coincidir con el del grupo Lingjun asociado. De lo contrario, la creación del node pool de Lingjun fallará.
Los nuevos nodos escalados horizontalmente en el grupo heredan automáticamente el rol de RAM del grupo. Los nodos existentes en el grupo no se ven afectados.
Después de crear el node pool, no modifique el rol de RAM del grupo Lingjun. De lo contrario, el node pool podría funcionar de manera incorrecta.
No
-
Volumes
La configuración personalizada del disco de datos es una función de lista de permitidos. Esta función monta el directorio del entorno de ejecución de contenedores en un disco de datos local. Para habilitar esta función, comuníquese con el equipo de Container Service a través de su gerente de servicio al cliente (PDSA).
ImportanteDurante la actualización de un node pool, si las configuraciones de almacenamiento de los nodos difieren, cada nodo se inicializa por separado según su configuración real.
Para garantizar la estabilidad, asegúrese de reservar suficiente espacio libre para el directorio del entorno de ejecución de contenedores. El almacenamiento local conlleva riesgo de pérdida de datos. Monte el directorio del entorno de ejecución de contenedores en un disco del sistema en la nube.
-
Advanced Options (Optional)
El directorio de montaje debe estar vacío. Si monta un directorio que contiene archivos, estos dejarán de ser accesibles.
Los node pools de Lingjun solo permiten montar el directorio del entorno de ejecución de contenedores en un disco de datos local, no en un disco de datos en la nube. Si el directorio del entorno de ejecución de contenedores está en un disco local, tenga en cuenta el siguiente comportamiento cuando un nodo Lingjun se desconecta para mantenimiento (reemplazo en espera). Los datos del disco local no se conservan, lo que puede borrar la información del entorno de ejecución de contenedores, como kubelet y containerd, y provocar anomalías en el estado del nodo. Para evitar la recuperación manual que esto implica, monte el directorio del entorno de ejecución de contenedores en un disco del sistema en la nube.
Cuando habilite esta función, no configure simultáneamente el directorio del entorno de ejecución de contenedores mediante la función Pre-defined Custom Data de ACK ni mediante la función de datos personalizados de Lingjun (UserData). De lo contrario, el nodo podría no funcionar como se espera.
service.alibabacloud.com/exclude-nodealibabacloud.com/lingjun-workeralibabacloud.com/lingjun-hpnzonealibabacloud.com/lingjun-zoneidalibabacloud.com/lingjun-network-type: vpdalibabacloud.com/lingjun-machine-typek8s.aliyun.com/exclusive-mode-eni-type: eniOnlyDescripción: sincroniza directamente el nombre de host de un nodo Lingjun con su NodeName.
Ejemplo: si el nombre de host de la instancia es
test, el NodeName del nodo serátest.
Ajuste
Descripción
Modificable
System Disk
Configuración del disco del sistema en la nube de los nodos del grupo Lingjun actual. Cuando se usa un disco del sistema local, la configuración específica no se muestra aquí.
Si no selecciona Configure local disk mounting for the container runtime directory, el directorio del entorno de ejecución de contenedores se monta de forma predeterminada en el disco del sistema (disco del sistema local o disco del sistema en la nube).
ImportanteCuando los datos del entorno de ejecución de contenedores se almacenan en el disco del sistema, la falta de espacio en disco provoca la expulsión de pods o anomalías en los nodos. Para garantizar la estabilidad, asegúrese de reservar suficiente espacio libre en el disco del sistema o configure un disco de datos dedicado para el entorno de ejecución de contenedores. Consulte Insufficient disk space - DiskPressure para conocer las soluciones ante la falta de espacio en disco de los nodos.
No aplica
Data Disk
Discos de datos locales que utilizan los nodos Lingjun. Después de seleccionar Configure local disk mounting for the container runtime directory, se monta un disco de datos local aleatorio en los directorios del entorno de ejecución de contenedores, como
/var/lib/container,/var/lib/containerd,/var/lib/kubelety/var/log/pods.Configure Initialization Settings: seleccione el formato del sistema de archivos (ext4 o xfs). Esto solo surte efecto en discos locales sin formato.
ImportanteSí
Ajuste
Descripción
Modificable
Taints
Agregue taints de clave-valor al nodo. Una clave de taint válida consta de un prefijo opcional y un nombre. Si hay un prefijo, se separa del nombre con una barra diagonal (/).
Sí
Node Labels
ImportanteCuando crea un node pool de Lingjun, ACK agrega automáticamente etiquetas al node pool para habilitar el modo ENI exclusiva. No las elimine después de la creación.
No elimine las siguientes etiquetas predeterminadas de un node pool de Lingjun:
Agregue etiquetas de clave-valor al nodo. Una clave válida consta de un prefijo opcional y un nombre. Si hay un prefijo, este y el nombre se separan con una barra diagonal (/).
Sí
Container Image Acceleration
Esta función solo es compatible con entornos de ejecución containerd de la versión 1.6.34 o posterior.
Los nodos recién agregados detectan automáticamente si una imagen de contenedor admite la carga bajo demanda. Si la admite, la usan de forma predeterminada para acelerar el inicio del contenedor y reducir el tiempo de arranque de la aplicación. Para obtener más información, consulte Use on-demand loading of container images to accelerate container startup.
Sí
Custom Node Name
Función de lista de permitidos, no aplicable a node pools que no sean de Lingjun
No
Pre-defined Custom Data
Antes de que un nodo se una al clúster, se ejecutan los User-Data script de personalización previa especificados.
Por ejemplo, si especifica los datos de personalización previa como
touch /tmp/pre-script, el script combinado en el nodo se ejecuta en el siguiente orden.#!/bin/bash # The input instance pre-customization data is executed here touch /tmp/pre-script # The ACK node initialization script is executed hereSí
User Data
Después de que un nodo se une al clúster, se ejecutan los User-Data script de instancia especificados.
Por ejemplo, si especifica los datos de usuario de la instancia como
touch /tmp/post-script, el script combinado en el nodo se ejecuta en el siguiente orden.#!/bin/bash # The ACK node initialization script is executed here # The input instance user data is executed here touch /tmp/post-scriptQue el clúster se cree correctamente o que el escalamiento horizontal de nodos finalice bien no garantiza que el script de datos de usuario de la instancia se haya ejecutado correctamente. Inicie sesión en el nodo y ejecute
grep cloud-init /var/log/messagespara consultar los registros de ejecución.Sí
-
Modo ENI exclusivo de Terway
Los node pools de Lingjun solo admiten el modo ENI exclusivo de Terway (compatible con Terway desde la v1.14.4). Para adaptarse a las diferencias de red subyacentes entre los distintos tipos de instancia e imágenes de Lingjun, actualice Terway a la v1.16.8 o posterior. Consulte minimum version requirements para actualizar terway-eniip.
Cuando crea un node pool de Lingjun, ACK agrega automáticamente la etiqueta k8s.aliyun.com/exclusive-mode-eni-type: eniOnly al node pool para habilitar el modo ENI exclusivo. No elimine esta etiqueta después de la creación. Para obtener más información, consulte Configure exclusive ENI mode for a node pool.
Si un node pool de Lingjun no tiene esta etiqueta, utilizará el modo de red ENI compartido.
Cuando los nodos Lingjun usan comunicación de red VPC en el modo ENI compartido, pueden producirse fallas intermitentes de red en los pods con algunas imágenes antiguas de Lingjun. Para restaurar temporalmente sus servicios, vuelva a crear los pods. Para resolver este problema de forma permanente, actualice Terway a la versión más reciente durante las horas de menor actividad. Después, agregue nodos Lingjun mediante la creación de un node pool de Lingjun en modo ENI exclusivo.
Agregar nodos Lingjun existentes
En la consola de Container Service, agregue por lotes nodos Lingjun del grupo de Lingjun asociado a un node pool de Lingjun. Utilice esta operación para agregar nodos del grupo a un clúster de ACK como nodos worker, o bien para devolver al pool los nodos worker que se quitaron previamente. Los nodos agregados se gestionan a nivel de node pool.
Al agregar nodos Lingjun no se reemplaza el sistema operativo original, el disco del sistema ni los discos de datos de los nodos, por lo que los datos almacenados se conservan.
Ámbito de aplicación
Las instancias de nodo que se van a agregar ya deben pertenecer al grupo de Lingjun asociado a este node pool y no deben haberse unido a otros node pools.
El OperatingState de los nodos Lingjun debe ser Using.
Procedimiento
En la página ACK Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en .
-
En la página Node Pools, haga clic en ⋮ Add Existing Nodes y siga las instrucciones en pantalla para completar la siguiente configuración:
Add Existing Lingjun Node: seleccione las instancias que desea agregar en la lista de instancias. Seleccione Show Unavailable Instances para consultar las instancias no disponibles.
-
Data Disk: elija cómo montar los discos de datos.
Disponible únicamente cuando la lista de permitidos de custom data disk configuration está habilitada.
-
Configure by Node Pool: utiliza la configuración de disco de datos preestablecida por el node pool para inicializar y montar los discos de datos.
Si el node pool no tiene una configuración de disco de datos preestablecida, se conserva la configuración original de los nodos.
-
No Initialization: no inicializa los discos de datos y conserva la configuración original de disco de datos de los nodos.
ImportanteSi las configuraciones de almacenamiento de los nodos son distintas, durante una actualización del node pool el sistema inicializa los discos de datos de forma individual según la configuración de almacenamiento real de cada nodo, en lugar de usar una configuración unificada.
Cuando utiliza la opción de configuración por node pool, el directorio de montaje debe estar vacío. Si monta un directorio que contiene archivos, estos dejarán de ser accesibles.
-
Una vez agregados los nodos, ACK añade automáticamente las siguientes etiquetas a las instancias de nodo Lingjun. Consúltelas en Lingjun Intelligent Computing console:
ack.aliyun.com: el ID del clúster administrado ACK Pro que gestiona el nodo.ack.alibabacloud.com/nodepool-id: el ID del node pool de Lingjun que gestiona el nodo.
Quitar nodos Lingjun
Cuando un nodo ya no sea necesario, quítelo del node pool. Esta acción puede afectar sus servicios, por lo que se recomienda ejecutarla durante las horas de menor actividad.
Notas
-
Drenar nodos:
Si existen pods en un nodo, seleccione Drain Node y compruebe que el clúster cuenta con recursos suficientes. Los pods se migrarán automáticamente a otros nodos.
Si sus aplicaciones tienen configurados presupuestos de interrupción de pods (PDB), el drenado podría fallar y provocar que la eliminación también falle. Gestione esta situación manualmente de antemano.
Después del drenado, si sus aplicaciones no logran iniciarse correctamente en otros nodos, la tarea de eliminación continuará de todos modos.
Cuando quite nodos que se encuentren en un estado anómalo, no seleccione Drain Node. De lo contrario, la eliminación podría fallar.
-
Estado del nodo después de la eliminación:
Al quitar un nodo Lingjun, este únicamente se elimina del node pool de Lingjun. El nodo no se retira del grupo de Lingjun, ni se libera o da de baja automáticamente.
Las instancias de nodo Lingjun agregadas a un node pool no se liberan cuando se elimina el clúster de ACK o el node pool de Lingjun, ni se reducen automáticamente del grupo de Lingjun. Revise el estado de facturación de los nodos Lingjun para evitar costos adicionales.
Para ejecutar más operaciones de gestión en nodos y grupos, diríjase a Lingjun Intelligent Computing console.
La eliminación es una operación asíncrona. Compruebe el progreso en la lista de nodos.
Procedimiento
En la página ACK Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en .
-
Haga clic en el nombre del node pool de Lingjun de destino y quite los nodos en la página Nodes.
Quitar un solo nodo: busque el nodo de destino y, en la columna Actions de dicho nodo, elija .
Quitar nodos por lotes: seleccione los nodos de destino y haga clic en Batch Remove en la parte inferior de la página.
Elija si desea seleccionar Drain Node, lea las notas de la página y siga las instrucciones en pantalla.
Actualizar la versión de kubelet
Es posible actualizar las versiones de kubelet y del entorno de ejecución de contenedores de los node pools de Lingjun. Antes de la actualización, ejecute comprobaciones previas para identificar riesgos que puedan afectarla. Una vez que inicie la actualización, el sistema ejecutará automáticamente dichas comprobaciones y omitirá los nodos que no las superen.
Actualización de kubelet: actualiza el kubelet de los nodos del node pool a la misma versión que el plano de control.
Actualización del entorno de ejecución de contenedores: actualiza el entorno de ejecución de contenedores de los nodos a la versión más reciente.
La actualización solo está disponible para los node pools de Lingjun que contienen nodos.
En la página ACK Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en .
-
En la columna Actions del node pool de Lingjun de destino, elija
Kubelet Update y siga las instrucciones en pantalla para completar la siguiente configuración:-
Información básica
Configuración
Descripción
Información de actualización de kubelet y del entorno de ejecución
Muestra la versión actual y las versiones de actualización disponibles de kubelet y del entorno de ejecución de contenedores.
Update Nodes
Especifique los nodos que se van a actualizar (todos o algunos).
Update Method
Una actualización in-place actualiza los componentes necesarios directamente en los nodos originales. No se reemplaza el disco del sistema, los nodos no se reinicializan y los datos de los nodos originales no se ven afectados.
Ignore Warnings
Indica si se debe continuar cuando la comprobación previa reporta advertencias. Por ejemplo, si un pod usa un
hostPathque apunta al disco del sistema. -
Batch Update Policy
Configuración
Descripción
Maximum Number of Nodes per Batch
Durante la actualización, los nodos se actualizan de forma secuencial según el paralelismo máximo configurado.
Automatic Pause Policy
La política de pausa aplicada durante la actualización de los nodos.
Interval Between Batches
Cuando la política de pausa automática se establece en Do Not Pause, elija si desea definir un intervalo de tiempo entre los lotes de actualización y especifique su duración. Valores válidos: de 5 a 120 minutos.
-
Haga clic en Precheck. Si la comprobación falla, resuelva los problemas con las soluciones proporcionadas en la página y continúe una vez que se supere.
-
Haga clic en Start Update y siga las instrucciones en pantalla para completar la actualización.
Durante la actualización, usted puede:
-
Pause: coloca el node pool en un estado intermedio. Evite otras operaciones en el clúster y finalice la actualización lo antes posible. Las actualizaciones pausadas por más de siete días se cancelan automáticamente, y los eventos y registros relacionados se eliminan.
No es posible revertir las versiones de kubelet o del entorno de ejecución de contenedores en los nodos que ya se actualizaron.
Cancel: cancela la actualización. Después de hacer clic en Cancel, no podrá revertir las versiones de kubelet o del entorno de ejecución de contenedores en los nodos que ya se actualizaron.
-
Escenarios comunes de operaciones y mantenimiento para nodos Lingjun
A continuación se describen los procedimientos correspondientes en ACK para los nodos Lingjun en diversos escenarios de operaciones y mantenimiento.
Escenario | Descripción |
Mover un nodo Lingjun a otro grupo |
|
Reiniciar un nodo Lingjun |
|
Reinstalar un nodo Lingjun |
|
Mantenimiento sin conexión de Lingjun (reemplazo en espera) |
|
Más operaciones
Usar la función RDMA
Para habilitar la comunicación de red de acceso remoto directo a memoria (RDMA) en los pods de los nodos Lingjun, primero instale manualmente el complemento ack-rdma-device-plugin en la página Add-ons. Para consultar las instrucciones de uso, vea Use RDMA networks for pods on Lingjun nodes.
Usar nodos PPU en un node pool de Lingjun
Para Use PPUs in a Lingjun node pool, primero instale manualmente los complementos ack-rdma-device-plugin y ack-ppu-device-plugin en la página Add-ons. Para usar el monitoreo de PPU, instale el complemento ppu-device-plugin.
Usar supernodos PPU con programación consciente de la topología de red
Para permitir que la programación consciente de la topología de ACK asigne tareas a supernodos PPU compatibles con ICN Link, primero instale manualmente el complemento ack-ppu-device-plugin en la página Add-ons. Para consultar las instrucciones de uso, vea Usar supernodos Zhenwu PPU M890 con programación consciente de la topología de red.
Preguntas frecuentes
¿Por qué un nodo permanece en estado Not Ready después del mantenimiento?
Síntoma: un nodo Lingjun se desconecta para mantenimiento debido a problemas de hardware, pero una vez finalizado el proceso, su estado en el clúster de ACK sigue siendo Not Ready.
Causa: durante el mantenimiento sin conexión del nodo Lingjun se llevó a cabo un reemplazo de máquina. Los datos del disco local no se conservan, lo que puede provocar que se borre la información del entorno de ejecución de contenedores, como kubelet y containerd, y que el estado del nodo se vuelva anómalo.
Solución: una vez completado el mantenimiento, debe quitar manualmente el nodo del node pool y volver a agregarlo al node pool de Lingjun mediante adding existing nodes.