Activación de Cgroups v2 en nodos de trabajador OL8 mediante imágenes personalizadas
Descubra cómo activar los cgroups v2 en nodos de trabajador que ejecutan Oracle Linux 8 (OL8) en clusters creados con Kubernetes Engine (OKE), mediante imágenes personalizadas.
En las imágenes OL8 de OKE que tienen un número de compilación de 1367 o superior, los cgroups v2 están activados por defecto. Sin embargo, en las imágenes OL8 de OKE que tienen un número de compilación inferior a 1367 (y en las imágenes de plataforma OL8), los cgroups v1 están activados de forma predeterminada. En este tema se describe cómo activar cgroups v2 en el núcleo de Linux de instancias que alojan nodos de trabajador que utilizan imágenes OL8 de OKE que tienen un número de compilación inferior a 1367 o que utilizan imágenes de plataforma OL8.
Los grupos de control (cgroups) son una función del núcleo de Linux que proporciona un mecanismo para gestionar y controlar la asignación de recursos para procesos o grupos de procesos. La función de cgroups permite a los administradores y desarrolladores del sistema asignar y limitar varios recursos del sistema (como CPU, memoria, E/S, ancho de banda de red) a procesos o conjuntos de procesos específicos. Los Cgroups ofrecen una forma potente y flexible de gestionar el uso de recursos, asegurando que los procesos reciban los recursos necesarios mientras evitan que consuman cantidades excesivas y afecten el rendimiento de otros procesos o del sistema en su conjunto. Al crear y organizar procesos en grupos de control, los administradores pueden aplicar restricciones de recursos, priorizar tareas y mantener la estabilidad del sistema.
Oracle Linux proporciona dos tipos de grupos de control:
- Grupos de control versión 1 (cgroups v1): estos grupos proporcionan una jerarquía de controlador por recurso. Cada recurso, como CPU, memoria, E/S, etc., tiene su propia jerarquía de grupo de control. Una desventaja de los cgroups v1 es la dificultad de coordinar el uso de recursos entre los grupos que pueden pertenecer a diferentes jerarquías de procesos.
- Grupos de control versión 2 (cgroups v2): estos grupos proporcionan una única jerarquía de grupos de control en la que se montan todos los controladores de recursos. En esta jerarquía, puede coordinar el uso de recursos entre diferentes controladores de recursos
Para obtener más información sobre grupos de control y Oracle Linux, consulte Gestión de recursos mediante grupos de control en la documentación de Oracle Linux.
Tanto los cgroups v1 como los cgroups v2 están presentes en Oracle Linux 8 (y versiones posteriores).
En las imágenes OL8 de OKE que tienen un número de creación de 1367 o superior, los cgroups v2 están activados de forma predeterminada. En las imágenes OL8 de OKE que tienen un número de compilación inferior a 1367 (y en las imágenes de plataforma OL8), los cgroups v1 están activados de forma predeterminada. Por lo tanto, al especificar una imagen OL8 de OKE con un número de compilación inferior a 1367 (o una imagen de plataforma OL8) para un pool de nodos, los cgroups v1 están activados por defecto en los núcleos de Linux de las instancias informáticas que alojan los nodos en el pool de nodos.
Sin embargo, puede activar cgroups v2 al utilizar imágenes OL8 de OKE con un número de compilación inferior a 1367 (e imágenes de plataforma OL8).
En un nivel superior, el proceso para activar cgroups v2 es el siguiente:
- Paso 1: cree una instancia informática que ejecute la imagen OL8 necesaria y active los cgroups v2.
- Paso 2: Active los cgroups v2 en la instancia informática.
- Paso 3: cree una imagen personalizada basada en la instancia informática en la que estén activados los cgroups v2.
- Paso 4: Agregar nodos de trabajador que ejecuten OL8 con los cgroups v2 activados en un cluster. La forma en que se agregan los nodos activados para v2 de cgroups a un cluster depende de si se desean agregar los nodos como nodos gestionados o como nodos autogestionados. Para los nodos gestionados, se define un pool de nodos gestionados. Para los nodos autogestionados, puede agregar instancias informáticas como nodos de trabajador.
Paso 1: Cree una instancia informática que ejecute la imagen OL8 necesaria y active los cgroups v2
En este paso, puede utilizar el servicio Compute para crear una instancia informática que ejecute la versión OL8 que desea en los nodos de trabajador del cluster de Kubernetes.
- Decida qué versión de OL8 (y si va a seleccionar una imagen de OKE, qué versión de Kubernetes) desea en los nodos de trabajador.
Oracle proporciona una serie de imágenes de plataforma e imágenes de OKE OL8 diferentes.
-
Siga las instrucciones de Creación de una instancia en la documentación del servicio Compute para crear una nueva instancia informática y seleccione una imagen de plataforma adecuada (ya sea seleccionando una imagen de plataforma o especificando el OCID de una imagen de OKE).
Esta es la instancia informática que utilizará como base de una nueva imagen personalizada.
Paso 2: Activar cgroups v2 en la instancia informática
En este paso, active los cgroups v2 en la instancia informática que ha creado en el paso anterior. Las instrucciones aquí están diseñadas como un resumen conveniente de Activación de cgroups v2 en la documentación de OL8.
- En una ventana de terminal, conéctese a la instancia informática y configure todas las entradas de inicio del núcleo para montar cgroups v2 por defecto, introduciendo:
sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=1" - Reinicie la instancia; para ello, introduzca:
sudo reboot - Confirme que los cgroups v2 ahora estén montados introduciendo:
sudo mount -l | grep cgroup - Opcionalmente, compruebe el contenido del directorio
/sys/fs/cgroup(el grupo de control raíz), introduciendo:ls -l /sys/fs/cgroup/Para los cgroups v2, los archivos del directorio deben tener prefijos al inicio de sus nombres de archivo (como
cgroup.*,cpu.*,memory.*).
Paso 3: Crear una imagen personalizada basada en la instancia informática donde está activado cgroups v2
En este paso, utilice el servicio Compute para crear una imagen personalizada a partir de la instancia informática que haya activado para los cgroups v2 en el paso anterior.
- Cierre la instancia que ha activado para los cgroups v2 introduciendo:
sudo shutdown -h now - Siga las instrucciones de Gestión de imágenes personalizadas en la documentación del servicio Compute para crear una imagen personalizada basada en la instancia informática.
- Anote el OCID de la imagen personalizada que ha creado.
Paso 4: Agregar nodos de trabajador que ejecuten OL8 con los cgroups v2 activados en un cluster
En este paso, utilice la imagen personalizada que ha creado en el paso anterior para agregar nodos de trabajador que ejecutan OL8 con cgroups v2 activados para un cluster de Kubernetes.
Tenga en cuenta que hay diferentes instrucciones que seguir, según si desea activar cgroups v2 en nodos gestionados o en nodos autogestionados. Para los nodos gestionados, se define un pool de nodos gestionados. Para los nodos autogestionados, puede agregar instancias informáticas como nodos de trabajador.
Tenga en cuenta que debe utilizar la CLI para crear nodos gestionados basados en imágenes personalizadas.
Adición de nodos gestionados que ejecutan OL8 con cgroups v2 activado
Para agregar nodos gestionados que ejecutan OL8 con los cgroups v2 activados en un cluster existente:
- Abra un símbolo del sistema y utilice el comando oci ce node-pool create para crear un nuevo pool de nodos.
- Además de los parámetros obligatorios que necesita el comando, incluya el parámetro
--node-image-idy especifique el OCID de la imagen personalizada que ha creado en el Paso 3: Crear una imagen personalizada basada en la instancia informática donde está activado cgroups v2.Por ejemplo, puede introducir el siguiente comando:
oci ce node-pool create \ --cluster-id ocid1.cluster.oc1.iad.aaaa______m4w \ --name my-nodepool \ --node-image-id ocid1.image.oc1.iad.aaaa______zpq \ --compartment-id ocid1.tenancy.oc1..aaa______q4a \ --kubernetes-version v1.29.1 \ --node-shape VM.Standard2.1 \ --placement-configs "[{\"availabilityDomain\":\"PKGK:US-ASHBURN-AD-1\", \"subnetId\":\"ocid1.subnet.oc1.iad.aaaa______kfa\"}]" \ --size 3 \ --region us-ashburn-1
Adición de nodos autogestionados que ejecutan OL8 con los cgroups v2 activados
Antes de crear un nodo autogestionado:
- Confirme que el cluster al que desea agregar el nodo autogestionado esté configurado correctamente para los nodos autogestionados. Consulte Cluster Requirements.
- Confirme que ya existen un grupo dinámico y una política de IAM para permitir que la instancia informática que aloja el nodo autogestionado se una a un cluster mejorado creado con Kubernetes Engine. Consulte Crear un grupo dinámico y una política para nodos autogestionados.
- Cree un script cloud-init que contenga el punto final privado de la API de Kubernetes y el certificado de CA codificado en base64 del cluster mejorado al que desea agregar el nodo autogestionado. Consulte Creación de scripts Cloud-init para nodos autogestionados.
Uso de la Consola
- Cree una nueva instancia informática para alojar el nodo autogestionado:
- Abra el menú de navegación y seleccione Recursos informáticos. En Recursos informáticos, seleccione Instancias.
- Siga las instrucciones de la documentación del servicio informático para crear una nueva instancia informática. Tenga en cuenta que deben existir las políticas adecuadas para permitir que la nueva instancia informática se una al cluster mejorado. Consulte Crear un grupo dinámico y una política para nodos autogestionados.
- En la sección Imagen y una unidad, seleccione Cambiar imagen.
- Seleccione Mis imágenes, seleccione la opción OCID de imagen y, a continuación, introduzca el OCID de la imagen personalizada que ha creado en el Paso 3: Creación de una imagen personalizada basada en la instancia informática en la que está activado cgroups v2.
- Seleccione Opciones avanzadas y, en la sección Gestión, seleccione la opción Pegar script cloud-init.
- Copie y pegue el script cloud-init para los nodos autogestionados que ha creado anteriormente en el campo Script cloud-init.
- Seleccione Crear para crear la instancia informática para alojar el nodo autogestionado.
Cuando se crea la instancia informática, se agrega como nodo autogestionado al cluster con el punto final de API de Kubernetes que ha especificado en el script cloud-init.
- (Opcional) Verifique que el nodo autogestionado se haya agregado al cluster de Kubernetes y que las etiquetas se hayan agregado al nodo y se hayan definido como se esperaba, siguiendo las instrucciones de Creación de nodos autogestionados.
Uso de la CLI
- Abra un símbolo del sistema e introduzca el comando
oci Compute instance launchy los parámetros necesarios para crear un nodo autogestionado. - Además de los parámetros obligatorios requeridos por el comando:
- Incluya el parámetro
--image-idy especifique el OCID de la imagen personalizada que ha creado en el Paso 3: Crear una imagen personalizada basada en la instancia informática donde está activado cgroups v2. - Incluya el parámetro
--user-data-filey especifique el script cloud-init para los nodos autogestionados que ha creado anteriormente.
Por ejemplo, puede introducir el siguiente comando:
oci compute instance launch \ --availability-domain zkJl:PHX-AD-1 \ --compartment-id ocid1.compartment.oc1..aaaaaaa______neoq \ --shape VM.Standard2.2 \ --subnet-id ocid1.subnet.oc1.phx.aaaaaaa______hzia \ --user-data-file my-selfmgd-cgroupsv2-cloud-init.yaml \ --image-id ocid1.image.oc1.phx.aaaaaaa______slcrCuando se crea la instancia informática, se agrega como nodo autogestionado al cluster con el punto final de API de Kubernetes que ha especificado en el script cloud-init.
- Incluya el parámetro