Personnaliser la configuration du système de nœud


Ce document explique comment personnaliser la configuration de vos nœuds Google Kubernetes Engine (GKE) à l'aide d'un fichier de configuration appelé configuration de système de nœuds.

Présentation

Vous pouvez personnaliser la configuration de vos nœuds à l'aide de différentes méthodes. Par exemple, vous pouvez spécifier des paramètres tels que le type de machine et la configuration minimale de la plate-forme du processeur lorsque vous créez un pool de nœuds.

Une configuration de système de nœuds est un fichier de configuration qui permet d'ajuster un ensemble limité de paramètres système. Vous pouvez utiliser une configuration de système de nœuds pour spécifier des paramètres personnalisés pour l'agent de nœud Kubernetes (kubelet) et des configurations de noyau Linux de bas niveau (sysctl) dans vos pools de nœuds.

Vous pouvez également personnaliser votre environnement d'exécution de conteneur containerd sur vos nœuds GKE à l'aide d'un fichier différent appelé fichier de configuration d'exécution. Pour obtenir des instructions, consultez la section Personnaliser la configuration containerd dans les nœuds GKE.

Vous pouvez également utiliser des DaemonSets pour personnaliser les nœuds, comme décrit dans la section Amorçage automatique des nœuds GKE avec DaemonSets.

Utiliser une configuration de système de nœuds

Vous pouvez personnaliser la configuration du système de votre nœud à l'aide de l'une des méthodes suivantes:

  • Fichier de configuration: disponible en mode Standard. Vous utilisez un fichier YAML contenant les paramètres de configuration du kubelet et du noyau Linux. Les étapes de cette page vous expliquent comment créer et utiliser un fichier de configuration.
  • ComputeClass: disponible en mode Autopilot et en mode Standard. Vous spécifiez la configuration du système de nœuds dans la spécification de la classe de calcul GKE. Les classes de calcul vous permettent de définir des ensembles d'attributs de nœud que GKE utilisera lors de l'ajustement à la hausse de votre cluster. Disponible dans GKE 1.32.1-gke.1729000 et versions ultérieures. Pour en savoir plus, consultez la section À propos des classes de calcul dans GKE.

Pour utiliser un fichier de configuration du système de nœuds, procédez comme suit:

  1. Créez un fichier de configuration. Ce fichier contient vos configurations kubelet et sysctl.
  2. Ajoutez la configuration lorsque vous créez un cluster, ou lorsque vous créez ou mettez à jour un pool de nœuds.

Créer un fichier de configuration

Écrivez le fichier de configuration du système de nœud en YAML. L'exemple suivant montre comment ajouter des configurations pour les options kubelet et sysctl :

kubeletConfig:
  cpuManagerPolicy: static
  allowedUnsafeSysctls:
  - 'kernel.shm*'
  - 'kernel.msg*'
  - 'kernel.sem'
  - 'fs.mqueue*'
  - 'net.*'
linuxConfig:
 sysctl:
   net.core.somaxconn: '2048'
   net.ipv4.tcp_rmem: '4096 87380 6291456'

Dans cet exemple :

  • cpuManagerPolicy: static configure le kubelet pour utiliser la règle de gestion du processeur statique.
  • net.core.somaxconn: '2048' limite les tâches en attente socket listen() à 2 048 octets.
  • net.ipv4.tcp_rmem: '4096 87380 6291456' définit la valeur minimale, la valeur par défaut et la valeur maximale du tampon de réception de socket TCP sur 4 096 octets, 87 380 octets et 6 291 456 octets, respectivement.

Si vous ne souhaitez ajouter des configurations que pour le kubelet ou sysctl, n'incluez que cette section dans votre fichier de configuration. Par exemple, pour ajouter une configuration kubelet, créez le fichier suivant :

kubeletConfig:
  cpuManagerPolicy: static

Pour obtenir la liste complète des champs que vous pouvez ajouter à votre fichier de configuration, consultez les sections Options de configuration Kubelet et Options de configuration Sysctl.

Ajouter la configuration à un pool de nœuds

Après avoir créé le fichier de configuration, ajoutez l'option --system-config-from-file à l'aide de Google Cloud CLI. Vous pouvez ajouter cette option lorsque vous créez un cluster, ou lorsque vous créez ou mettez à jour un pool de nœuds. Vous ne pouvez pas ajouter de configuration de système de nœuds avec la console Google Cloud .

Créer un cluster avec la configuration du système de nœuds

Vous pouvez ajouter une configuration système de nœud lors de la création d'un cluster avec gcloud CLI ou Terraform. Les instructions suivantes appliquent la configuration du système de nœuds au pool de nœuds par défaut:

CLI gcloud

gcloud container clusters create CLUSTER_NAME \
    --location=LOCATION \
    --system-config-from-file=SYSTEM_CONFIG_PATH

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom de votre cluster.
  • LOCATION : zone ou région Compute du cluster.
  • SYSTEM_CONFIG_PATH: chemin d'accès au fichier contenant vos configurations kubelet et sysctl.

Une fois que vous avez appliqué une configuration de système de nœud, le pool de nœuds par défaut du cluster utilise les paramètres que vous avez définis.

Terraform

Pour créer un cluster régional avec une configuration système de nœud personnalisée à l'aide de Terraform, reportez-vous à l'exemple suivant:

resource "google_container_cluster" "default" {
  name     = "gke-standard-regional-cluster"
  location = "us-central1"

  initial_node_count = 1

  node_config {
    # Kubelet configuration
    kubelet_config {
      cpu_manager_policy = "static"
    }

    linux_node_config {
      # Sysctl configuration
      sysctls = {
        "net.core.netdev_max_backlog" = "10000"
      }

      # Linux cgroup mode configuration
      cgroup_mode = "CGROUP_MODE_V2"

      # Linux huge page configuration
      hugepages_config {
        hugepage_size_2m = "1024"
      }
    }
  }
}

Pour en savoir plus sur l'utilisation de Terraform, consultez la page Compatibilité de Terraform avec GKE.

Créer un pool de nœuds avec la configuration système du nœud

Vous pouvez ajouter une configuration du système de nœuds lorsque vous utilisez la gcloud CLI ou Terraform pour créer un pool de nœuds. Vous pouvez également mettre à jour la configuration du système de nœuds d'un pool de nœuds existant.

Les instructions suivantes appliquent la configuration système de nœuds à un nouveau pool de nœuds:

CLI gcloud

gcloud container node-pools create POOL_NAME \
     --cluster CLUSTER_NAME \
     --location=LOCATION \
     --system-config-from-file=SYSTEM_CONFIG_PATH

``` Replace the following:
  • POOL_NAME : nom de votre pool de nœuds.
  • CLUSTER_NAME: nom du cluster auquel vous souhaitez ajouter un pool de nœuds.
  • LOCATION : zone ou région Compute du cluster.
  • SYSTEM_CONFIG_PATH: chemin d'accès au fichier contenant vos configurations kubelet et sysctl.

Terraform

Pour créer un pool de nœuds avec une configuration de système de nœuds personnalisée à l'aide de Terraform, reportez-vous à l'exemple suivant:

resource "google_container_node_pool" "default" {
  name    = "gke-standard-regional-node-pool"
  cluster = google_container_cluster.default.name

  node_config {
    # Kubelet configuration
    kubelet_config {
      cpu_manager_policy = "static"
    }

    linux_node_config {
      # Sysctl configuration
      sysctls = {
        "net.core.netdev_max_backlog" = "10000"
      }

      # Linux cgroup mode configuration
      cgroup_mode = "CGROUP_MODE_V2"

      # Linux huge page configuration
      hugepages_config {
        hugepage_size_2m = "1024"
      }
    }
  }
}

Pour en savoir plus sur l'utilisation de Terraform, consultez la page Compatibilité de Terraform avec GKE.

Mettre à jour la configuration du système de nœuds d'un pool de nœuds existant

Exécutez la commande suivante :

  gcloud container node-pools update POOL_NAME \
      --cluster=CLUSTER_NAME \
      --location=LOCATION \
      --system-config-from-file=SYSTEM_CONFIG_PATH

Remplacez les éléments suivants :

  • POOL_NAME: nom du pool de nœuds que vous souhaitez mettre à jour.
  • CLUSTER_NAME: nom du cluster que vous souhaitez mettre à jour.
  • LOCATION : zone ou région Compute du cluster.
  • SYSTEM_CONFIG_PATH: chemin d'accès au fichier contenant vos configurations kubelet et sysctl.

Cette modification nécessite de recréer les nœuds, ce qui peut perturber vos charges de travail en cours d'exécution. Pour en savoir plus sur cette modification spécifique, recherchez la ligne correspondante dans le tableau Modifications manuelles qui recréent les nœuds à l'aide d'une stratégie de mise à niveau de nœuds sans respecter les règles de maintenance. Pour en savoir plus sur les mises à jour de nœuds, consultez Planifier les perturbations liées aux mises à jour de nœuds.

Modifier une configuration de système de nœuds

Pour modifier une configuration de système de nœuds, vous pouvez créer un pool de nœuds avec la configuration souhaitée ou mettre à jour la configuration du système de nœud d'un pool de nœuds existant.

Modifier en créant un pool de nœuds

Pour modifier une configuration de système de nœuds en créant un pool de nœuds, procédez comme suit :

  1. Créez un fichier de configuration avec la configuration de votre choix.
  2. Ajoutez la configuration à un nouveau pool de nœuds.
  3. Migrez vos charges de travail vers le nouveau pool de nœuds.
  4. Supprimez l'ancien pool de nœuds.

Modifier en mettant à jour un pool de nœuds existant

Pour modifier la configuration du système de nœuds d'un pool de nœuds existant, suivez les instructions de l'onglet Mettre à jour le pool de nœuds pour ajouter la configuration à un pool de nœuds. La mise à jour d'une configuration de système de nœud remplace la configuration système du pool de nœuds par la nouvelle configuration, ce qui nécessite de recréer les nœuds. Si vous omettez des paramètres lors d'une mise à jour, ils sont définis sur leurs valeurs par défaut.

Si vous souhaitez réinitialiser la configuration de système de nœuds, mettez à jour le fichier de configuration avec des valeurs vides pour le kubelet et sysctl. Exemple :

kubeletConfig: {}
linuxConfig:
  sysctl: {}

Supprimer une configuration de système de nœuds

Pour supprimer une configuration de système de nœuds, procédez comme suit :

  1. Créez un pool de nœuds.
  2. Migrez vos charges de travail vers le nouveau pool de nœuds.
  3. Supprimez le pool de nœuds contenant l'ancienne configuration de système de nœuds.

Options de configuration Kubelet

Le tableau suivant présente les options de kubelet que vous pouvez modifier.

Paramètres de configuration Kubelet Restrictions Paramètre par défaut Description
allowedUnsafeSysctls Liste des noms ou groupes sysctl. Groupes sysctl autorisés: kernel.shm*, kernel.msg*, kernel.sem, fs.mqueue.* et net.*. Exemple: [kernel.msg*, net.ipv4.route.min_pmtu]. none Ce paramètre définit une liste d'autorisation séparée par une virgule de noms ou de groupes sysctl dangereux, qui peut être définie sur les pods.sysctl

Disponible sur GKE 1.32.0-gke.1448000 ou version ultérieure.
containerLogMaxSize La valeur doit être un nombre positif et un suffixe d'unité compris entre 10Mi et 500Mi inclus. Seules les unités suivantes sont acceptées : Ki, Mi, Gi. 10Mi Ce paramètre contrôle le paramètre containerLogMaxSize de la stratégie de rotation des journaux de conteneur, qui vous permet de configurer la taille maximale de chaque fichier journal. La valeur par défaut est 10Mi.

containerLogMaxFiles La valeur doit être un entier compris entre 2 et 10 inclus. 5 Ce paramètre contrôle le paramètre containerLogMaxFiles de la stratégie de rotation des fichiers journaux de conteneur, qui vous permet de configurer le nombre maximal de fichiers autorisés pour chaque conteneur. La valeur par défaut est 5. La taille totale des journaux (container_log_max_size*container_log_max_files) par conteneur ne peut pas dépasser 1 % de l'espace de stockage total du nœud.

cpuCFSQuota La valeur doit être true ou false. true Ce paramètre applique la limite de processeur du pod. Définir cette valeur sur false signifie que les limites du processeur pour les pods sont ignorées.

Il est préférable d'ignorer les limites du processeur dans certains scénarios où les pods sont sensibles aux limites du processeur. Le risque lié à la désactivation de cpuCFSQuota est qu'un pod non autorisé peut consommer plus de ressources de processeur que prévu.
cpuCFSQuotaPeriod La valeur doit être une durée. "100ms" Ce paramètre définit la valeur de période de quota du CFS du processeur (cpu.cfs_period_us) qui spécifie la période à laquelle l'accès d'un groupe aux ressources du processeur doit être réattribué. Cette option vous permet d'ajuster le comportement de limitation du processeur.
imageGcLowThresholdPercent La valeur doit être un entier compris entre 10 et 85 inclus, et inférieur à imageGcHighThresholdPercent. 80 imageGcLowThresholdPercent correspond au pourcentage d'utilisation du disque avant lequel la récupération de mémoire des images n'est jamais exécutée. Utilisation minimale du disque pour la collecte des déchets. Le pourcentage est calculé en divisant la valeur de ce champ par 100. Si cet attribut est spécifié, la valeur doit être inférieure à imageGcThresholdPercent.
imageGcHighThresholdPercent La valeur doit être un entier compris entre 10 et 85 inclus, et supérieur à imageGcLowThresholdPercent. 85 imageGcHighThresholdPercent correspond au pourcentage d'utilisation du disque au-delà duquel la récupération de mémoire des images est exécutée. Utilisation maximale du disque pour la récupération de mémoire. Le pourcentage est calculé en divisant la valeur de ce champ par 100. Si elle est spécifiée, la valeur doit être supérieure à imageGcLowThresholdPercent.
imageMinimumGcAge La valeur doit être une durée ne dépassant pas 2 minutes. Les unités de temps valides sont "ns", "us" (or "µs"), "ms", "s", "m", "h". 2m imageMinimumGcAge correspond à l'âge minimal d'une image inutilisée avant qu'elle ne soit supprimée.
imageMaximumGcAge La valeur doit être une durée. 0s imageMaximumGcAge correspond à l'âge maximal qu'une image peut avoir sans être utilisée avant d'être supprimée. La valeur par défaut de ce champ est "0s", ce qui le désactive. Cela signifie que les images ne seront pas supprimées si elles ne sont pas utilisées pendant trop longtemps. Si elle est spécifiée, la valeur doit être supérieure à imageMinimumGcAge. imageMaximumGcAge est disponible dans les versions GKE 1.30.7-gke.1076000, 1.31.3-gke.1023000 ou ultérieures.
insecureKubeletReadonlyPortEnabled La valeur doit être une valeur booléenne (true ou false). true Ce paramètre désactive le port accessible en lecture seule et non sécurisé du kubelet 10255 sur chaque nouveau pool de nœuds de votre cluster. Si vous configurez ce paramètre dans ce fichier, vous ne pouvez pas utiliser un client d'API GKE pour modifier le paramètre au niveau du cluster.
podPidsLimit La valeur doit être comprise entre 1 024 et 4 194 304 none Ce paramètre définit le nombre maximal d'ID de processus (PID) que chaque pod peut utiliser.

Gestionnaires de ressources

Kubernetes propose une suite de gestionnaires de ressources. Vous pouvez configurer ces gestionnaires de ressources pour coordonner et optimiser l'alignement des ressources de nœud pour les pods configurés avec des exigences spécifiques pour les ressources de processeurs, d'appareils et de mémoire (hugepages). Pour en savoir plus, consultez la section Gestionnaires de ressources de nœud.

Avec GKE, vous pouvez configurer les paramètres suivants pour ces gestionnaires de ressources. Vous pouvez configurer ces paramètres indépendamment les uns des autres. Toutefois, nous vous recommandons de les utiliser ensemble pour aligner la gestion des ressources. Vous pouvez utiliser les paramètres du Gestionnaire de topologie avec les paramètres du Gestionnaire de processeurs et du Gestionnaire de mémoire pour aligner le processeur et la mémoire sur les autres ressources demandées dans la spécification du pod.

Paramètres de configuration Kubelet Restrictions Paramètre par défaut Description
      cpuManagerPolicy:
      
La valeur doit être none ou static. none Ce paramètre contrôle la règle du gestionnaire de processeur du kubelet. La valeur par défaut est none, ce qui correspond au schéma d'affinité de processeur par défaut, qui ne fournit aucune affinité au-delà de celle qui est fournie automatiquement par le programmeur du système d'exploitation.

Si vous définissez cette valeur sur static, les pods de la classe QoS Guaranteed ayant des requêtes de processeurs entières se voient attribuer des processeurs exclusifs.
      memoryManager:
        policy:
      
La valeur doit être None ou Static. None

Ce paramètre contrôle la règle du gestionnaire de mémoire du kubelet. Avec la valeur par défaut None, Kubernetes se comporte de la même manière que si le gestionnaire de mémoire n'était pas présent. Pour en savoir plus, consultez la section Règle "Aucune".

Si vous définissez cette valeur sur Static, la règle du Gestionnaire de mémoire envoie des indices de topologie qui dépendent du type de pod. Pour en savoir plus, consultez la section Règle statique.

Ce paramètre est compatible avec les clusters dont le plan de contrôle exécute la version 1.32.3-gke.1785000 ou ultérieure de GKE.

      topologyManager:
        policy:
        scope:
      
La valeur doit correspondre à l'un des paramètres acceptés pour chacun des champs respectifs.
  • La valeur par défaut de topologyManager.policy est none.
  • La valeur par défaut de topoloyManager.scope est container.

Ces paramètres contrôlent la règle du gestionnaire de topologie du kubelet, qui coordonne l'ensemble de composants responsables des optimisations des performances liées à l'isolation du processeur, à la mémoire et à la localité de l'appareil.

Vous pouvez définir les paramètres de règle et de champ d'application indépendamment les uns des autres. Pour en savoir plus sur ces paramètres, consultez la section Champs d'application et règles du Gestionnaire de topologie.

Les ressources GKE suivantes sont compatibles avec ce paramètre:

  • Clusters dont le plan de contrôle exécute GKE version 1.32.3-gke.1785000 ou ultérieure Pour les clusters dont le plan de contrôle et les nœuds exécutent la version 1.33.0-gke.1712000 ou ultérieure, le Gestionnaire de topologie reçoit également des informations sur la topologie du GPU.
  • Nœuds avec les types de machines suivants: A2, A3, G2, A4 et C4A.

L'exemple suivant montre une configuration de système de nœud dans laquelle les trois règles Resource Manager sont configurées:

cpuManagerPolicy: static
memoryManager:
  policy: Static
topologyManager:
  policy: best-effort
  scope: pod

Options de configuration Sysctl

Pour ajuster les performances de votre système, vous pouvez modifier les attributs de noyau suivants :

Différents espaces de noms Linux peuvent avoir des valeurs uniques pour un sysctl donné, tandis que d'autres sont globaux pour l'ensemble du nœud. La mise à jour des options sysctl à l'aide d'une configuration de système de nœuds garantit que sysctl est appliqué de manière globale sur le nœud et dans chaque espace de noms. Ainsi, chaque pod a des valeurs sysctl identiques dans chaque espace de noms Linux.

Options de configuration du mode cgroup de Linux

Le kubelet et l'environnement d'exécution du conteneur utilisent des cgroups du noyau Linux pour la gestion des ressources, par exemple pour limiter la quantité de ressources processeur ou mémoire auxquelles chaque conteneur d'un pod peut accéder. Il existe deux versions du sous-système cgroup dans le noyau : cgroupv1 et cgroupv2. La compatibilité de Kubernetes avec cgroupv2 a été introduite en version alpha dans la version 1.18 de Kubernetes, en version bêta dans la version 1.22 et en disponibilité générale dans la version 1.25. Pour plus de détails, consultez la documentation consacrée aux cgroups Kubernetes en v2.

La configuration du système de nœud vous permet de personnaliser la configuration cgroup de vos pools de nœuds. Vous pouvez utiliser cgroupv1 ou cgroupv2. GKE utilise cgroupv2 pour les nouveaux pools de nœuds standard exécutant les versions 1.26 ou ultérieures, et cgroupv1 pour les versions antérieures à la version 1.26. Pour les pools de nœuds créés avec le provisionnement automatique des nœuds, la configuration du cgroup dépend de la version initiale du cluster, et non de la version du pool de nœuds. cgroupv1 n'est pas compatible avec les machines ARM.

Vous pouvez utiliser la configuration du système de nœud pour modifier le paramètre d'un pool de nœuds afin d'utiliser explicitement cgroupv1 ou cgroupv2. La mise à niveau d'un pool de nœuds existant vers la version 1.26 ne remplace pas le paramètre par cgroupv2, car les pools de nœuds existants créés exécutant une version antérieure à la version 1.26 (sans configuration de cgroup personnalisée) continuent à utiliser. cgroupv1, sauf indication contraire explicite de votre part.

Par exemple, pour configurer votre pool de nœuds afin d'utiliser cgroupv2, utilisez un fichier de configuration du système de nœud tel que :

linuxConfig:
  cgroupMode: 'CGROUP_MODE_V2'

Les options cgroupMode acceptées sont les suivantes :

  • CGROUP_MODE_V1: utilisez cgroupv1 sur le pool de nœuds.
  • CGROUP_MODE_V2: utilisez cgroupv2 sur le pool de nœuds.
  • CGROUP_MODE_UNSPECIFIED : utilisez la configuration cgroup par défaut de GKE.

Pour utiliser cgroupv2, les exigences et limites suivantes s'appliquent:

  • Pour un pool de nœuds exécutant une version antérieure à 1.26, vous devez utiliser gcloud CLI 408.0.0 ou une version ultérieure. Vous pouvez également utiliser gcloud beta avec la version 395.0.0 ou une version ultérieure.
  • Votre cluster et vos pools de nœuds doivent exécuter GKE version 1.24.2-gke.300 ou ultérieure.
  • Vous devez utiliser Container-Optimized OS avec une image de nœud containerd.
  • Si l'une de vos charges de travail dépend de la lecture du système de fichiers cgroup (/sys/fs/cgroup/...), assurez-vous qu'elles sont compatibles avec l'API cgroupv2.
    • Assurez-vous que les outils de surveillance ou tiers sont compatibles avec cgroupv2.
  • Si vous utilisez le JDK (charge de travail Java), nous vous recommandons d'utiliser des versions entièrement compatibles avec cgroupv2, y compris JDK 8u372, JDK 11.0.16 ou version ultérieure, ou JDK 15 ou version ultérieure.

Vérifier la configuration cgroup

Lorsque vous ajoutez une configuration de système de nœud, GKE doit recréer les nœuds pour mettre en œuvre les modifications. Une fois que vous avez ajouté la configuration à un pool de nœuds et que les nœuds ont été recréés, vous pouvez vérifier la nouvelle configuration.

Vous pouvez vérifier la configuration cgroup des nœuds d'un pool de nœuds à l'aide de gcloud CLI ou de l'outil de ligne de commande kubectl:

CLI gcloud

Vérifiez la configuration cgroup d'un pool de nœuds:

gcloud container node-pools describe POOL_NAME \
    --format='value(Config.effectiveCgroupMode)'

Remplacez POOL_NAME par le nom de votre pool de nœuds.

La sortie potentielle est l'une des suivantes:

  • EFFECTIVE_CGROUP_MODE_V1: les nœuds utilisent cgroupv1
  • EFFECTIVE_CGROUP_MODE_V2: les nœuds utilisent cgroupv2

La sortie n'affiche la nouvelle configuration de cgroup qu'après la recréation des nœuds du pool de nœuds. La sortie est vide pour les pools de nœuds Windows Server, qui ne sont pas compatibles avec cgroup.

kubectl

Pour vérifier la configuration cgroup des nœuds de ce pool de nœuds avec kubectl, choisissez un nœud et connectez-vous à celui-ci en suivant les instructions suivantes :

  1. Créez un shell interactif avec n'importe quel nœud du pool de nœuds. Dans la commande, remplacez mynode par le nom d'un nœud quelconque du pool de nœuds.
  2. Identifiez la version cgroup sur les nœuds Linux.

Options de configuration Huge Pages sur Linux

Vous pouvez utiliser le fichier de configuration du système de nœud pour utiliser la fonctionnalité de noyau Linux Huge Pages.

Kubernetes prend en charge Huge Pages sur les nœuds en tant que type de ressource, comme le processeur ou la mémoire. Utilisez les paramètres suivants pour indiquer à vos nœuds Kubernetes de pré-allouer des Huge Pages à consommer par les pods. Pour gérer la consommation de Huge Pages par vos pods, consultez la page Gérer les pages HugePages.

Pour pré-allouer des pages Huge Pages pour vos nœuds, spécifiez les quantités et les tailles. Par exemple, pour configurer vos nœuds afin d'allouer trois pages Huge Pages de 1 gigaoctet et 1 024 pages Huge Pages de 2 mégaoctets, utilisez une configuration de système de nœud telle que la suivante :

linuxConfig:
  hugepageConfig:
    hugepage_size2m: 1024
    hugepage_size1g: 3

Pour utiliser Huge Pages, les limitations et exigences suivantes s'appliquent :

  • Pour garantir que le nœud n'est pas entièrement occupé par les pages Huge Pages, la taille globale des pages Huge Pages allouées ne peut pas dépasser 60% de la mémoire totale sur les machines dotées de moins de 30 Go de mémoire et 80% sur les machines dotées de plus de 30 Go de mémoire. Par exemple, sur une machine e2-standard-2 dotée de 8 Go de mémoire, vous ne pouvez pas allouer plus de 4,8 Go aux pages Huge Pages. Et sur c4a-standard-8 avec 32 Go de mémoire, les pages Huge Pages ne peuvent pas dépasser 25,6 Go.
  • Les pages Huge Pages de 1 Go ne sont disponibles que sur les types de machines A3, C2D, C3, C3D, C4, C4A, CT5E, CT5LP, CT6E, H3, M2, M3 ou Z3.

Étapes suivantes