Utiliser des disques de démarrage secondaires pour précharger des données ou des images de conteneurs


Cette page explique comment améliorer la latence de démarrage des charges de travail en utilisant des disques de démarrage secondaires dans Google Kubernetes Engine (GKE) pour précharger des données ou des images de conteneur sur de nouveaux nœuds. Cela permet aux charges de travail d'accélérer le démarrage à froid et d'améliorer l'utilisation globale des ressources provisionnées.

Avant de lire cette page, assurez-vous de connaître Google Cloud, Kubernetes, les conteneurs, YAML, l'environnement d'exécution conteneurisé et la Google Cloud CLI.

Présentation

À partir de la version 1.28.3-gke.1067000 de GKE dans les clusters Standard et de la version 1.30.1-gke.1329000 de GKE dans les clusters Autopilot, vous pouvez configurer le pool de nœuds avec des disques de démarrage secondaires. Vous pouvez indiquer à GKE de provisionner les nœuds et de les précharger avec des données, telles qu'un modèle de machine learning (ML) ou une image de conteneur. L'utilisation de données ou d'images de conteneur préchargées sur un disque secondaire présente les avantages suivants pour vos charges de travail:

  • Latence réduite lors de l'extraction d'images de conteneur volumineuses ou du téléchargement de données
  • Autoscaling plus rapide
  • Récupération plus rapide après des perturbations telles que des événements de maintenance et des erreurs système

Les sections suivantes expliquent comment configurer le disque de démarrage secondaire dans les clusters GKE Autopilot et standards.

Fonctionnement des disques de démarrage secondaires

Votre charge de travail peut démarrer plus rapidement en utilisant l'image ou les données de conteneur préchargées sur des disques de démarrage secondaires. Les disques de démarrage secondaires présentent les caractéristiques suivantes:

  • Les disques de démarrage secondaires sont des disques persistants qui sont sauvegardés par un stockage de blocs distribué.
  • Le disque persistant est instancié à partir d'images de disque que vous créez à l'avance.
  • Pour des raisons d'évolutivité, chaque nœud dispose de sa propre instance de disque persistant créée à partir de l'image de disque. Ces instances de disques persistants sont supprimées lorsque le nœud l'est.
  • Si l'image de disque est déjà utilisée dans la zone, le temps de création de tous les disques ultérieurs créés à partir de la même image de disque sera inférieur.
  • Le type de disque de démarrage secondaire est identique à celui du disque de démarrage du nœud.
  • La taille du disque de démarrage secondaire est déterminée par la taille de l'image du disque.

L'ajout de disques de démarrage secondaires à vos pools de nœuds n'augmente généralement pas le temps de provisionnement des nœuds. GKE provisionne les disques de démarrage secondaires à partir de l'image de disque en parallèle du processus de provisionnement de nœuds.

Bonne pratique:

Pour prendre en charge les images de conteneur préchargées, GKE étend l'environnement d'exécution containerd avec des plug-ins qui lisent les images de conteneur à partir de disques de démarrage secondaires. Les images de conteneur sont réutilisées par les couches de base.

Préchargez les grandes couches de base sur le disque de démarrage secondaire, tandis que les petites couches supérieures peuvent être extraites du registre de conteneurs.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Si vous souhaitez utiliser Google Cloud CLI pour cette tâche, installez puis initialisez gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande gcloud components update.

Conditions requises

Les exigences suivantes s'appliquent à l'utilisation d'un disque de démarrage secondaire :

  1. Vos clusters exécutent la version 1.28.3-gke.1067000 de GKE dans GKE Standard ou la version 1.30.1-gke.1329000 de GKE Autopilot.
  2. Lorsque vous modifiez l'image disque, vous devez créer un pool de nœuds. La mise à jour de l'image disque sur les nœuds existants n'est pas possible.
  3. Configurez le streaming d'images pour utiliser la fonctionnalité de disque de démarrage secondaire.
  4. Utilisez Container-Optimized OS avec une image de nœud containerd. Les nœuds Autopilot utilisent cette image de nœud par défaut.
  5. Préparez l'image disque avec des données prêtes au moment de la compilation ou avec des images de conteneur préchargées. Assurez-vous que votre cluster a accès à l'image disque à charger sur les nœuds.

    Bonne pratique:

    Automatisez l'image de disque dans un pipeline CI/CD.

Limites

Les disques de démarrage secondaires présentent les limites suivantes:

  • Vous ne pouvez pas mettre à jour les disques de démarrage secondaires pour les nœuds existants. Pour associer une nouvelle image disque, créez un pool de nœuds.
  • Vous ne pouvez pas utiliser de disques de démarrage secondaires pour précharger des données dans les clusters GKE Autopilot.

Tarifs

Lorsque vous créez des pools de nœuds avec des disques de démarrage secondaires, GKE associe un disque Persistent Disk à chaque nœud du pool de nœuds. Les disques persistants sont facturés conformément aux tarifs des disques Compute Engine.

Préparer l'image du disque de démarrage secondaire

Pour préparer l'image du disque de démarrage secondaire, sélectionnez l'onglet Images pour précharger des images de conteneur ou l'onglet Données pour précharger des données, puis suivez les instructions suivantes:

Images

GKE fournit un outil appelé gke-disk-image-builder pour créer une machine virtuelle (VM), extraire les images de conteneur sur un disque, puis créer une image disque à partir de ce disque.

Pour créer une image disque avec plusieurs images de conteneur préchargées, procédez comme suit:

  1. Créez un bucket Cloud Storage pour stocker les journaux d'exécution de gke-disk-image-builder.
  2. Créez une image disque avec gke-disk-image-builder.
go run ./cli \
    --project-name=PROJECT_ID \
    --image-name=DISK_IMAGE_NAME \
    --zone=LOCATION \
    --gcs-path=gs://LOG_BUCKET_NAME \
    --disk-size-gb=10 \
    --container-image=docker.io/library/python:latest \
    --container-image=docker.io/library/nginx:latest

Remplacez les éléments suivants :

  • PROJECT_ID: nom de votre Google Cloud projet.
  • DISK_IMAGE_NAME: nom de l'image du disque. Exemple : nginx-python-image.
  • LOCATION: l'emplacement du cluster.
  • LOG_BUCKET_NAME: nom du bucket Cloud Storage où stocker les journaux d'exécution. Exemple : gke-secondary-disk-image-logs/.

Lorsque vous créez une image disque avec gke-disk-image-builder,Google Cloud crée plusieurs ressources pour terminer le processus (par exemple, une instance de VM, un disque temporaire et un disque persistant). Après son exécution, le compilateur d'images nettoie toutes les ressources, à l'exception de l'image disque que vous avez créée.

Données

Créez une image disque personnalisée en tant que source de données en procédant comme suit:

  1. Créez une VM avec un disque vide.
  2. Utilisez SSH pour vous connecter à la VM.
    1. Installez le disque vide.
    2. Téléchargez les données sur le disque vide.
  3. Créez une image personnalisée à partir du disque.

Configurer le disque de démarrage secondaire

Vous pouvez configurer le disque de démarrage secondaire dans un cluster GKE Autopilot ou Standard.

Bonnes pratiques:

Utilisez un cluster Autopilot pour une expérience Kubernetes entièrement gérée. Pour choisir le mode de fonctionnement GKE le mieux adapté à vos charges de travail, consultez la section Choisir un mode de fonctionnement GKE.

Utilisez GKE Autopilot

Dans cette section, vous allez créer une liste d'autorisation d'images disque pour autoriser l'image disque dans un cluster Autopilot GKE existant. Vous modifiez ensuite le sélecteur de nœuds de pod pour utiliser un disque de démarrage secondaire.

Autoriser les images de disque dans votre projet

Dans cette section, vous allez créer un GCPResourceAllowlist pour permettre à GKE de créer des nœuds avec des disques de démarrage secondaires à partir des images de disque de votre projetGoogle Cloud .

  1. Enregistrez le manifeste suivant sous le nom allowlist-disk.yaml :

    apiVersion: "node.gke.io/v1"
    kind: GCPResourceAllowlist
    metadata:
      name: gke-secondary-boot-disk-allowlist
    spec:
      allowedResourcePatterns:
      - "projects/PROJECT_ID/global/images/.*"
    

    Remplacez PROJECT_ID par l'ID de votre projet pour héberger l'image disque.

  2. Appliquez le fichier manifeste :

    kubectl apply -f allowlist-disk.yaml
    

    GKE crée des nœuds avec des disques de démarrage secondaires à partir de toutes les images de disque du projet.

Mettre à jour le sélecteur de nœuds de pod pour utiliser un disque de démarrage secondaire

Dans cette section, vous allez modifier la spécification du pod afin que GKE crée les nœuds avec le disque de démarrage secondaire.

  1. Ajoutez un fichier nodeSelector à votre modèle de pod :

    nodeSelector:
        cloud.google.com.node-restriction.kubernetes.io/gke-secondary-boot-disk-DISK_IMAGE_NAME: CONTAINER_IMAGE_CACHE.PROJECT_ID
    

    Remplacez les éléments suivants :

    • DISK_IMAGE_NAME : nom de votre image disque.
    • PROJECT_ID: ID de votre projet pour héberger l'image disque.
  2. Utilisez la commande kubectl apply pour appliquer la spécification Kubernetes avec le modèle de pod.

  3. Vérifiez que le cache du disque de démarrage secondaire est utilisé :

    kubectl get events --all-namespaces
    

    Le résultat ressemble à ce qui suit :

    75s         Normal      SecondaryDiskCachin
    node/gke-pd-cache-demo-default-pool-75e78709-zjfm   Image
    gcr.io/k8s-staging-jobsejt/pytorch-mnist:latest is backed by secondary disk cache
    
  4. Méthode la plus fiable pour vérifier que le cache du disque de démarrage secondaire est utilisé:

    Interrogez le journal du nœud qui vous intéresse à l'aide de ce nom de journal:

    logName="projects/PROJECT_ID/logs/gcfs-snapshotter"
    

    Remplacez PROJECT_ID par l'ID de votre Google Cloud projet.

    Le journal semblable à: Image gcr.io/k8s-staging-jobsejt/pytorch-mnist:latest is backed by secondary boot disk caching by 100.0%... indique que le cache du disque de démarrage secondaire a été utilisé.

  5. Vérifiez la latence d'extraction de l'image:

    kubectl describe pod POD_NAME
    

    Remplacez POD_NAME par le nom du pod.

    Le résultat est semblable à celui-ci :

    …
      Normal  Pulled     15m   kubelet            Successfully pulled image "docker.io/library/nginx:latest" in 0.879149587s
    …
    

La latence attendue pour l'extraction de l'image de conteneur mise en cache doit être considérablement réduite, quelle que soit la taille de l'image.

Utiliser GKE Standard

Pour créer un cluster GKE Standard et un pool de nœuds, suivez les instructions suivantes, en choisissant l'onglet "Images" ou "Données" selon que vous souhaitez précharger des images de conteneur ou des données sur le disque de démarrage secondaire:

Images

Pour configurer un disque de démarrage secondaire, utilisez Google Cloud CLI ou Terraform:

gcloud

  1. Créez un cluster GKE Standard avec le streaming d'images activé:

    gcloud container clusters create CLUSTER_NAME \
        --location=LOCATION \
        --cluster-version=VERSION \
        --enable-image-streaming
    

    Remplacez les éléments suivants :

    • CLUSTER_NAME : nom du cluster
    • LOCATION: emplacement du cluster.
    • VERSION: version de GKE à utiliser. La version de GKE doit être 1.28.3-gke.1067000 ou ultérieure.
  2. Créez un pool de nœuds avec un disque de démarrage secondaire dans le même projet:

    gcloud container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location LOCATION \
    --enable-image-streaming \
    --secondary-boot-disk=disk-image=global/images/DISK_IMAGE_NAME,mode=CONTAINER_IMAGE_CACHE
    

    Remplacez les éléments suivants :

    • NODE_POOL_NAME : nom du pool de nœuds.
    • CLUSTER_NAME : nom du cluster existant.
    • LOCATION: zone ou zones de calcul du cluster, séparées par une virgule.
    • DISK_IMAGE_NAME : nom de votre image disque.

    Pour créer un pool de nœuds avec un disque de démarrage secondaire à partir de l'image de disque d'un autre projet, suivez la procédure décrite dans Utiliser un disque de démarrage secondaire dans un autre projet.

  3. Ajoutez un fichier nodeSelector à votre modèle de pod :

    nodeSelector:
        cloud.google.com/gke-nodepool: NODE_POOL_NAME
    
  4. Vérifiez que le cache du disque de démarrage secondaire est utilisé :

    kubectl get events --all-namespaces
    

    Le résultat ressemble à ce qui suit :

    75s       Normal      SecondaryDiskCachin
    node/gke-pd-cache-demo-default-pool-75e78709-zjfm Image
    gcr.io/k8s-staging-jobsejt/pytorch-mnist:latest is backed by secondary disk cache
    
  5. Méthode la plus fiable pour vérifier que le cache du disque de démarrage secondaire est utilisé:

    Interrogez le journal du nœud qui vous intéresse à l'aide de ce nom de journal:

    logName="projects/PROJECT_ID/logs/gcfs-snapshotter"
    

    Remplacez PROJECT_ID par l'ID de votre Google Cloud projet.

    Le journal semblable à: Image gcr.io/k8s-staging-jobsejt/pytorch-mnist:latest is backed by secondary boot disk caching by 100.0%... indique que le cache du disque de démarrage secondaire a été utilisé.

  6. Vérifiez la latence d'extraction de l'image en exécutant la commande suivante:

    kubectl describe pod POD_NAME
    

    Remplacez POD_NAME par le nom du pod.

    Le résultat est semblable à celui-ci :

    …
      Normal  Pulled     15m   kubelet            Successfully pulled image "docker.io/library/nginx:latest" in 0.879149587s
    …
    

La latence attendue pour l'extraction de l'image de conteneur mise en cache ne doit pas dépasser quelques secondes, quelle que soit la taille de l'image.

Terraform

  1. Pour créer un cluster avec le pool de nœuds par défaut à l'aide de Terraform, reportez-vous à l'exemple suivant:

    resource "google_container_cluster" "default" {
      name               = "default"
      location           = "us-central1-a"
      initial_node_count = 1
    
      # secondary_boot_disks require GKE 1.28.3-gke.106700 or later, which should
      # be true for all release channels apart from EXTENDED.
      # If required, Use `release_channel = "EXTENDED"` and set `min_master_version`.
    }
  2. Créez un pool de nœuds avec un disque de démarrage secondaire dans le même projet:

    resource "google_container_node_pool" "secondary-boot-disk-container" {
      name               = "secondary-boot-disk-container"
      location           = "us-central1-a"
      cluster            = google_container_cluster.default.name
      initial_node_count = 1
    
      node_config {
        machine_type = "e2-medium"
        image_type   = "COS_CONTAINERD"
        gcfs_config {
          enabled = true
        }
        secondary_boot_disks {
          disk_image = ""
          mode       = "CONTAINER_IMAGE_CACHE"
        }
      }
    }

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

  3. Ajoutez un fichier nodeSelector à votre modèle de pod :

    nodeSelector:
        cloud.google.com/gke-nodepool: NODE_POOL_NAME
    
  4. Vérifiez que le cache du disque de démarrage secondaire est utilisé :

    kubectl get events --all-namespaces
    

    Le résultat ressemble à ce qui suit :

    75s       Normal      SecondaryDiskCachin
    node/gke-pd-cache-demo-default-pool-75e78709-zjfm Image
    gcr.io/k8s-staging-jobsejt/pytorch-mnist:latest is backed by secondary disk cache
    
  5. Vérifiez la latence d'extraction de l'image en exécutant la commande suivante:

    kubectl describe pod POD_NAME
    

    Remplacez POD_NAME par le nom du pod.

    Le résultat est semblable à celui-ci :

    …
      Normal  Pulled     15m   kubelet            Successfully pulled image "docker.io/library/nginx:latest" in 0.879149587s
    …
    

La latence attendue pour l'extraction de l'image de conteneur mise en cache ne doit pas dépasser quelques secondes, quelle que soit la taille de l'image.

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

Données

Vous pouvez configurer un disque de démarrage secondaire et précharger des données à l'aide de Google Cloud CLI ou de Terraform:

gcloud

  1. Créez un cluster GKE Standard avec le streaming d'images activé:

    gcloud container clusters create CLUSTER_NAME \
        --location=LOCATION \
        --cluster-version=VERSION \
        --enable-image-streaming
    

    Remplacez les éléments suivants :

    • CLUSTER_NAME : nom du cluster
    • LOCATION: emplacement du cluster.
    • VERSION: version de GKE à utiliser. La version de GKE doit être 1.28.3-gke.1067000 ou ultérieure.
  2. Créez un pool de nœuds avec un disque de démarrage secondaire à l'aide de l'option --secondary-boot-disk :

    gcloud container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location LOCATION \
    --enable-image-streaming \
    --secondary-boot-disk=disk-image=global/images/DISK_IMAGE_NAME
    

    Remplacez les éléments suivants :

    • NODE_POOL_NAME : nom du pool de nœuds.
    • CLUSTER_NAME : nom du cluster existant.
    • LOCATION: zone ou zones de calcul du cluster, séparées par une virgule.
    • DISK_IMAGE_NAME : nom de votre image disque.

    Pour créer un pool de nœuds avec un disque de démarrage secondaire à partir de l'image de disque d'un autre projet, suivez la procédure décrite dans Utiliser un disque de démarrage secondaire dans un autre projet.

    GKE crée un pool de nœuds dans lequel chaque nœud dispose d'un disque secondaire avec des données préchargées. GKE associe et installe le disque de démarrage secondaire sur le nœud.

  3. Pour accéder aux données, installez l'image de disque de démarrage secondaire dans les conteneurs de pod à l'aide d'une installation de volume hostPath. Définissez /usr/local/data_path_sbd sur le chemin d'accès dans votre conteneur où vous souhaitez que les données résident:

    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-name
    spec:
      containers:
      ...
      volumeMounts:
      - mountPath: /usr/local/data_path_sbd
        name: data-path-sbd
    ...
    volumes:
      - name: data-path-sbd
        hostPath:
            path: /mnt/disks/gke-secondary-disks/gke-DISK_IMAGE_NAME-disk
    

    Remplacez DISK_IMAGE_NAME par le nom de votre image de disque.

Terraform

  1. Pour créer un cluster avec le pool de nœuds par défaut à l'aide de Terraform, reportez-vous à l'exemple suivant:

    resource "google_container_cluster" "default" {
      name               = "default"
      location           = "us-central1-a"
      initial_node_count = 1
    
      # secondary_boot_disks require GKE 1.28.3-gke.106700 or later, which should
      # be true for all release channels apart from EXTENDED.
      # If required, Use `release_channel = "EXTENDED"` and set `min_master_version`.
    }
  2. Créez un pool de nœuds avec un disque de démarrage secondaire dans le même projet:

    resource "google_container_node_pool" "secondary-boot-disk-data" {
      name               = "secondary-boot-disk-data"
      location           = "us-central1-a"
      cluster            = google_container_cluster.default.name
      initial_node_count = 1
    
      node_config {
        machine_type = "e2-medium"
        image_type   = "COS_CONTAINERD"
        gcfs_config {
          enabled = true
        }
        secondary_boot_disks {
          disk_image = ""
        }
      }
    }

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

  3. Pour accéder aux données, installez l'image de disque de démarrage secondaire dans les conteneurs de pod à l'aide d'une installation de volume hostPath. Définissez /usr/local/data_path_sbd sur le chemin d'accès dans votre conteneur où vous souhaitez que les données résident:

    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-name
    spec:
      containers:
      ...
      volumeMounts:
      - mountPath: /usr/local/data_path_sbd
        name: data-path-sbd
    ...
    volumes:
      - name: data-path-sbd
        hostPath:
            path: /mnt/disks/gke-secondary-disks/gke-DISK_IMAGE_NAME-disk
    

    Remplacez DISK_IMAGE_NAME par le nom de votre image de disque.

Autoscaling des clusters avec des disques de démarrage secondaires

Pour créer un pool de nœuds et configurer l'autoscaling de cluster sur un disque de démarrage secondaire, utilisez Google Cloud CLI:

  gcloud container node-pools create NODE_POOL_NAME \
      --cluster=CLUSTER_NAME \
      --location LOCATION \
      --enable-image-streaming \
      --secondary-boot-disk=disk-image=global/images/DISK_IMAGE_NAME,mode=CONTAINER_IMAGE_CACHE \
      --enable-autoscaling \
      --num-nodes NUM_NODES \
      --min-nodes MIN_NODES \
      --max-nodes MAX_NODES

Remplacez les éléments suivants :

  • NODE_POOL_NAME : nom du pool de nœuds.
  • CLUSTER_NAME : nom du cluster existant.
  • LOCATION: zone ou zones de calcul du cluster, séparées par une virgule.
  • DISK_IMAGE_NAME : nom de votre image disque.
  • MIN_NODES : nombre minimal de nœuds en cas de scaling automatique pour le pool de nœuds spécifié par zone. Pour spécifier le nombre minimal de nœuds pour l'ensemble du pool de nœuds dans GKE version 1.24 ou ultérieure, utilisez --total-min-nodes. Les options --total-min-nodes et --total-max-nodes sont mutuellement exclusives avec les options --min-nodes et --max-nodes.
  • MAX_NODES : nombre maximal de nœuds en cas de scaling automatique pour le pool de nœuds spécifié par zone. Pour spécifier le nombre maximal de nœuds pour l'ensemble du pool de nœuds dans GKE version 1.24 ou ultérieure, utilisez --total-max-nodes. Les options --total-min-nodes et --total-max-nodes sont mutuellement exclusives avec les options --min-nodes et --max-nodes.

Provisionnement automatique des nœuds avec des disques de démarrage secondaires

Dans GKE 1.30.1-gke.1329000 et versions ultérieures, vous pouvez configurer le provisionnement automatique des nœuds pour créer et supprimer automatiquement des pools de nœuds afin de répondre aux exigences de ressources de vos charges de travail.

  1. Créez une ressource personnalisée de liste d'autorisation d'images disque pour le disque de démarrage secondaire pour le provisionnement automatique des nœuds GKE, semblable à celle-ci:

    apiVersion: "node.gke.io/v1"
    kind: GCPResourceAllowlist
    metadata:
      name: gke-secondary-boot-disk-allowlist
    spec:
      allowedResourcePatterns:
      - "projects/<PROJECT_ID>/global/images/.*"
    

    Remplacez PROJECT_ID par l'ID de votre projet pour héberger l'image disque.

  2. Pour déployer la ressource personnalisée de liste d'autorisation dans le cluster, exécutez la commande suivante:

    kubectl apply -f ALLOWLIST_FILE
    

    Remplacez ALLOWLIST_FILE par le nom de fichier du fichier manifeste.

  3. Mettez à jour le sélecteur de nœud du pod pour utiliser le disque de démarrage secondaire:

    nodeSelector:
        cloud.google.com.node-restriction.kubernetes.io/gke-secondary-boot-disk-DISK_IMAGE_NAME:CONTAINER_IMAGE_CACHE.PROJECT_ID
    

    Remplacez les éléments suivants :

    • DISK_IMAGE_NAME : nom de votre image disque.
    • PROJECT_ID: ID de votre projet pour héberger l'image disque.

Utiliser un disque de démarrage secondaire dans un autre projet

Lorsque vous créez un pool de nœuds avec un disque de démarrage secondaire, vous pouvez demander à GKE d'utiliser l'image de disque dans un autre projet à l'aide de l'option --secondary-boot-disk.

  1. Créez un pool de nœuds avec un disque de démarrage secondaire à partir de l'image de disque d'un autre projet à l'aide de l'indicateur --secondary-boot-disk. Exemple :

    gcloud beta container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --location LOCATION \
        --enable-image-streaming \
        --secondary-boot-disk=disk-image=projects/IMAGE_PROJECT_ID/global/images/DISK_IMAGE_NAME,mode=CONTAINER_IMAGE_CACHE
    
    

    Remplacez les éléments suivants :

    • DISK_IMAGE_NAME : nom de votre image disque.
    • IMAGE_PROJECT_ID: nom du projet auquel appartient l'image disque.

    GKE crée un pool de nœuds dans lequel chaque nœud dispose d'un disque secondaire avec des données préchargées. GKE associe et installe le disque de démarrage secondaire sur le nœud.

  2. Accordez l'accès aux images disque appartenant à un autre projet en ajoutant des rôles "Utilisateur d'images Compute" aux comptes de service du cluster:

    • Compte de service Compute par défaut: CLUSTER_PROJECT_NUMBER@cloudservices.gserviceaccount.com
    • Compte de service GKE: service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com
    gcloud projects add-iam-policy-binding IMAGE_PROJECT_ID \
        --member serviceAccount:CLUSTER_PROJECT_NUMBER@cloudservices.gserviceaccount.com \
        --role roles/compute.imageUser
    
    gcloud projects add-iam-policy-binding IMAGE_PROJECT_ID \
        --member serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com \
        --role roles/compute.imageUser
    

Étapes suivantes