Activation des groupes v2 sur les noeuds de processus actif OL8 à l'aide d'images personnalisées
Découvrez comment activer les groupes cgroups v2 sur les noeuds de processus actif qui exécutent Oracle Linux 8 (OL8) dans des clusters créés avec Kubernetes Engine (OKE), à l'aide d'images personnalisées.
Dans les images OKE OL8 dont le numéro de build est supérieur ou égal à 1367, cgroups v2 est activé par défaut. Toutefois, dans les images OKE OL8 dont le numéro de build est inférieur à 1367 (et dans les images de plate-forme OL8), cgroups v1 est activé par défaut. Cette rubrique explique comment activer les cgroups v2 dans le noyau Linux des instances hébergeant des noeuds de processus actif qui utilisent des images OKE OL8 dont le numéro de build est inférieur à 1367 ou qui utilisent des images de plate-forme OL8.
Les groupes de contrôle (cgroups) est une fonctionnalité du noyau Linux qui fournit un mécanisme de gestion et de contrôle de l'allocation des ressources pour les processus ou les groupes de processus. La fonctionnalité cgroups permet aux administrateurs système et aux développeurs d'allouer et de limiter diverses ressources système (telles que la CPU, la mémoire, les E/S, la bande passante réseau) à des processus ou des ensembles de processus spécifiques. Cgroups offre un moyen puissant et flexible de gérer l'utilisation des ressources, garantissant que les processus reçoivent les ressources nécessaires tout en les empêchant de consommer des quantités excessives et d'avoir un impact sur les performances d'autres processus ou du système dans son ensemble. En créant et en organisant des processus en groupes de contrôle, les administrateurs peuvent appliquer des contraintes de ressources, hiérarchiser les tâches et maintenir la stabilité du système.
Oracle Linux fournit deux types de groupe de contrôle :
- Groupes de contrôle version 1 (groupes v1) : ces groupes fournissent une hiérarchie de contrôleurs par ressource. Chaque ressource, telle que la CPU, la mémoire, les E/S, etc., possède sa propre hiérarchie de groupes de contrôle. Un inconvénient des groupes cgroups v1 est la difficulté de coordonner l'utilisation des ressources entre les groupes qui peuvent appartenir à différentes hiérarchies de processus.
- Groupes de contrôle version 2 (groupes v2) : ces groupes fournissent une hiérarchie de groupes de contrôle unique par rapport à laquelle tous les contrôleurs de ressources sont montés. Dans cette hiérarchie, vous pouvez coordonner l'utilisation des ressources entre différents contrôleurs de ressources
Pour plus d'informations sur les groupes de contrôle et Oracle Linux, reportez-vous à Gestion des ressources à l'aide des groupes de contrôle dans la documentation Oracle Linux.
Les cgroups v1 et les cgroups v2 sont tous deux présents dans Oracle Linux 8 (et versions ultérieures).
Dans les images OKE OL8 dont le numéro de build est supérieur ou égal à 1367, cgroups v2 est activé par défaut. Dans les images OKE OL8 dont le numéro de build est inférieur à 1367 (et dans les images de plate-forme OL8), cgroups v1 est activé par défaut. Par conséquent, lorsque vous indiquez une image OKE OL8 avec un numéro de build inférieur à 1367 (ou une image de plate-forme OL8) pour un pool de noeuds, les groupes cgroups v1 sont activés par défaut dans les noyaux Linux des instances de calcul hébergeant les noeuds du pool de noeuds.
Toutefois, vous pouvez activer les cgroups v2 lorsque vous utilisez des images OKE OL8 dont le numéro de build est inférieur à 1367 (et des images de plate-forme OL8).
A un niveau élevé, le processus permettant d'activer les cgroups v2 est le suivant :
- Etape 1 : créez une instance de calcul exécutant l'image OL8 requise et activez les groupes de noeuds v2.
- Etape 2 : activation de cgroups v2 sur l'instance de calcul.
- Etape 3 : création d'une image personnalisée basée sur l'instance de calcul où cgroups v2 est activé.
- Etape 4 : ajout de noeuds de processus actif exécutant OL8 avec les cgroups v2 activés à un cluster. La façon dont vous ajoutez des noeuds compatibles cgroups v2 à un cluster dépend de l'ajout des noeuds en tant que noeuds gérés ou en tant que noeuds autogérés. Pour les noeuds gérés, vous définissez un pool de noeuds gérés. Pour les noeuds autogérés, vous ajoutez des instances de calcul en tant que noeuds de processus actif.
Etape 1 : création d'une instance de calcul exécutant l'image OL8 requise et activation de cgroups v2
Cette étape consiste à utiliser le service Compute pour créer une instance de calcul qui exécute la version OL8 souhaitée sur les noeuds de processus actif du cluster Kubernetes.
- Choisissez la version de OL8 (et, si vous voulez sélectionner une image OKE, quelle version de Kubernetes) à utiliser sur les noeuds de processus actif.
Oracle fournit un certain nombre d'images OKE et d'images de plate-forme OL8 différentes.
-
Suivez les instructions de la section Création d'une instance dans la documentation du service Compute pour créer une instance de calcul et sélectionnez une image de plate-forme appropriée (en sélectionnant une image de plate-forme ou en indiquant l'OCID d'une image OKE).
Il s'agit de l'instance de calcul que vous utiliserez comme base d'une nouvelle image personnalisée.
Etape 2 : activation de cgroups v2 sur l'instance de calcul
Cette étape consiste à activer les cgroups v2 sur l'instance de calcul que vous avez créée à l'étape précédente. Les instructions fournies ici constituent un récapitulatif pratique de l'activation de cgroups v2 dans la documentation OL8.
- Dans une fenêtre de terminal, connectez-vous à l'instance de calcul et configurez toutes les entrées d'initialisation du noyau pour monter les cgroups v2 par défaut, en saisissant ce qui suit :
sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=1" - Redémarrez l'instance en saisissant ce qui suit :
sudo reboot - Confirmez que les cgroups v2 sont maintenant montés, en entrant :
sudo mount -l | grep cgroup - Vérifiez éventuellement le contenu du répertoire
/sys/fs/cgroup(groupe de contrôle racine), en saisissant ce qui suit :ls -l /sys/fs/cgroup/Pour les groupes cgroups v2, les fichiers du répertoire doivent comporter des préfixes au début de leur nom de fichier (tels que
cgroup.*,cpu.*,memory.*).
Etape 3 : création d'une image personnalisée basée sur l'instance de calcul où cgroups v2 est activé
Au cours de cette étape, vous utilisez le service Compute pour créer une image personnalisée à partir de l'instance de calcul que vous avez activée pour les groupes de noeuds v2 à l'étape précédente.
- Arrêtez l'instance que vous avez activée pour les cgroups v2 en saisissant ce qui suit :
sudo shutdown -h now - Suivez les instructions de la section Gestion des images personnalisées de la documentation du service Compute pour créer une image personnalisée basée sur l'instance de calcul.
- Notez l'OCID de l'image personnalisée que vous avez créée.
Etape 4 : ajout de noeuds de processus actif exécutant OL8 avec cgroups v2 activé à un cluster
Au cours de cette étape, vous utilisez l'image personnalisée que vous avez créée à l'étape précédente pour ajouter des noeuds de processus actif exécutant OL8 avec les groupes de noeuds v2 activés dans un cluster Kubernetes.
Les instructions à suivre varient selon que vous voulez activer les groupes v2 sur les noeuds gérés ou sur les noeuds autogérés. Pour les noeuds gérés, vous définissez un pool de noeuds gérés. Pour les noeuds autogérés, vous ajoutez des instances de calcul en tant que noeuds de processus actif.
Vous devez utiliser l'interface de ligne de commande pour créer des noeuds gérés basés sur des images personnalisées.
Ajout de noeuds gérés exécutant OL8 avec cgroups v2 activé
Pour ajouter des noeuds gérés exécutant OL8 avec les cgroups v2 activés à un cluster existant, procédez comme suit :
- Ouvrez une invite de commande et utilisez la commande oci ce node-pool create pour créer un pool de noeuds.
- Outre les paramètres obligatoires requis par la commande, incluez le paramètre
--node-image-idet indiquez l'OCID de l'image personnalisée que vous avez créée à l'étape 3 : création d'une image personnalisée basée sur l'instance de calcul où cgroups v2 est activé.Par exemple, vous pouvez entrer la commande suivante :
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
Ajout de noeuds autogérés exécutant OL8 avec cgroups v2 activé
Avant de créer un noeud autogéré :
- Vérifiez que le cluster auquel vous voulez ajouter le noeud autogéré est configuré de manière appropriée pour les noeuds autogérés. Reportez-vous à la section Cluster Requirements.
- Vérifiez qu'un groupe dynamique et une stratégie IAM existent déjà pour permettre à l'instance de calcul hébergeant le noeud autogéré de rejoindre un cluster amélioré créé avec Kubernetes Engine. Reportez-vous à Création d'un groupe dynamique et d'une stratégie pour les noeuds autogérés.
- Créez un script cloud-init contenant l'adresse privée d'API Kubernetes et le certificat d'autorité de certification encodé en base64 du cluster amélioré auquel ajouter le noeud auto-géré. Reportez-vous à Création de scripts cloud-init pour les noeuds autogérés.
Utilisation de la console
- Créez une instance de calcul pour héberger le noeud autogéré :
- Ouvrez le menu de navigation et sélectionnez Compute. Sous Compute, sélectionnez Instances.
- Suivez les instructions de la documentation du service Compute pour créer une instance de calcul. Des stratégies appropriées doivent exister pour permettre à la nouvelle instance de calcul de rejoindre le cluster amélioré. Reportez-vous à Création d'un groupe dynamique et d'une stratégie pour les noeuds autogérés.
- Dans la section Image et format, sélectionnez Modifier l'image.
- Sélectionnez Mes images, sélectionnez l'option OCID d'image, puis entrez l'OCID de l'image personnalisée que vous avez créée à l'étape 3 : création d'une image personnalisée basée sur l'instance de calcul dans laquelle les groupes v2 sont activés.
- Sélectionnez Options avancées et, dans la section Gestion, sélectionnez l'option Coller le script cloud-init.
- Copiez et collez le script cloud-init pour les noeuds autogérés que vous avez créés précédemment dans le champ Script cloud-init.
- Sélectionnez Créer pour créer l'instance de calcul destinée à héberger le noeud autogéré.
Lorsque l'instance de calcul est créée, elle est ajoutée en tant que noeud autogéré au cluster avec l'adresse d'API Kubernetes que vous avez indiquée dans le script cloud-init.
- (Facultatif) Vérifiez que le noeud autogéré a été ajouté au cluster Kubernetes et que des libellés ont été ajoutés au noeud et définis comme prévu, en suivant les instructions de la section Création de noeuds autogérés.
Utilisation de la CLI
- Ouvrez une invite de commande et entrez la commande
oci Compute instance launchet les paramètres requis pour créer un noeud autogéré. - En plus des paramètres obligatoires requis par la commande :
- Incluez le paramètre
--image-idet indiquez l'OCID de l'image personnalisée que vous avez créée à l'étape 3 : création d'une image personnalisée basée sur l'instance de calcul où cgroups v2 est activé. - Incluez le paramètre
--user-data-fileet indiquez le script cloud-init pour les noeuds autogérés que vous avez créés précédemment.
Par exemple, vous pouvez entrer la commande suivante :
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______slcrLorsque l'instance de calcul est créée, elle est ajoutée en tant que noeud autogéré au cluster avec l'adresse d'API Kubernetes que vous avez indiquée dans le script cloud-init.
- Incluez le paramètre