Configurer un disque de démarrage personnalisé


Vous trouverez sur cette page la procédure à suivre pour personnaliser un disque de démarrage de nœuds dans vos clusters et pools de nœuds Google Kubernetes Engine (GKE).

Présentation

Lorsque vous créez un cluster ou un pool de nœuds GKE, vous pouvez choisir pour chaque nœud le type de disque Persistent Disk sur lequel installer le système de fichiers de nœud Kubernetes. Par défaut, GKE utilise des disques Persistent Disk avec équilibrage en version 1.24 ou ultérieure. Vous pouvez également spécifier d'autres types de disques Persistent Disk, standard ou SSD par exemple. Pour en savoir plus, consultez la page Options de stockage.

Les disques Persistent Disk avec équilibrage ou SSD ont des quotas de disques différents de ceux des disques Persistent Disk standards. Si vous passez des disques Persistent Disk standards aux disques Persistent Disk avec équilibrage, vous devrez peut-être demander des augmentations de quota. Pour plus d'informations, consultez la page Quotas de ressources.

Avantages de l'utilisation d'un disque de démarrage SSD

L'utilisation d'un disque Persistent Disk SSD en tant que disque de démarrage pour vos nœuds offre certains avantages en termes de performances :

  • Les nœuds démarrent plus rapidement.
  • Les fichiers binaires et les fichiers diffusés à partir de conteneurs sont plus rapidement disponibles pour les nœuds. Cela peut augmenter les performances des charges de travail à forte demande d'E/S, telles que les applications de diffusion Web qui hébergent des fichiers statiques, ou les tâches par lot à exécution rapide et à forte demande d'E/S.
  • Les fichiers stockés sur des supports locaux des nœuds (exposés via des volumes hostPath ou emptyDir) peuvent offrir de meilleures performances d'E/S.

Spécifier un type de disque de démarrage des nœuds

Vous pouvez spécifier le type de disque de démarrage lorsque vous créez un cluster ou un pool de nœuds.

gcloud

Pour créer un cluster avec un disque de démarrage personnalisé, exécutez la commande ci-dessous.

Les valeurs possibles pour [DISK-TYPE] sont les suivantes :

  • pd-balanced (valeur par défaut dans la version 1.24 ou une version ultérieure)
  • pd-standard (valeur par défaut dans la version 1.23 ou une version antérieure)
  • pd-ssd
  • hyperdisk-balanced

Consultez la section Types de disques persistants pour plus d'informations sur ce choix.

gcloud container clusters create [CLUSTER_NAME] --disk-type [DISK_TYPE]

Pour créer un pool de nœuds dans un cluster existant, exécutez la commande ci-dessous :

gcloud container node-pools create [POOL_NAME] --disk-type [DISK_TYPE]

Par exemple, la commande suivante crée un cluster, example-cluster, avec le type de disque Persistent Disk SSD, pd-ssd :

gcloud container clusters create example-cluster --disk-type pd-ssd

Console

Pour sélectionner le disque de démarrage lors de la création de votre cluster avec la console Google Cloud, procédez comme suit :

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Cliquez sur Créer.

  3. Configurez le cluster selon vos besoins.

  4. Dans le volet de navigation, développez default-pool, puis cliquez sur Nœuds.

  5. Dans la liste déroulante Type de disque de démarrage, sélectionnez un type de disque Persistent Disk.

  6. Cliquez sur Créer.

Pour créer un pool de nœuds avec un disque de démarrage personnalisé pour un cluster existant, procédez comme suit :

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Cliquez sur Ajouter un pool de nœuds.

  4. Configurez votre pool de nœuds selon vos besoins.

  5. Dans le menu de navigation, cliquez sur Nœuds.

  6. Dans la liste déroulante Type de disque de démarrage, sélectionnez un type de disque Persistent Disk.

  7. Cliquez sur Créer.

Protéger les disques de démarrage des nœuds

Un disque de démarrage des nœuds stocke par défaut l'image de votre conteneur, certains journaux du processus système, les journaux du pod et la couche du conteneur accessible en écriture.

Si vos charges de travail utilisent les volumes configMap, emptyDir ou hostPath, vos pods peuvent écrire des données supplémentaires sur les disques de démarrage des nœuds. Vous pouvez configurer emptyDir pour qu'il soit sauvegardé par tmpfs afin d'arrêter ce processus. Pour en savoir plus, consultez la documentation Kubernetes. Les volumes secret, downwardAPI et projected étant sauvegardés par tmpfs, les pods qui les utilisent n'écrivent pas de données sur le disque de démarrage des nœuds.

Par défaut, Google Cloud chiffre les contenus client au repos, y compris les disques de démarrage des nœuds, et GKE gère le chiffrement sans aucune intervention de votre part.

Toutefois, lorsque vous utilisez des volumes qui écrivent sur le disque de démarrage des nœuds, vous êtes en mesure de mieux contrôler la protection des données de vos charges de travail dans GKE. Pour ce faire, vous pouvez empêcher les pods d'écrire sur les disques de démarrage des nœuds ou utiliser des clés de chiffrement gérées par le client pour les disques de démarrage des nœuds.

Empêcher les pods d'écrire sur les disques de démarrage

Pour empêcher les pods d'écrire des données directement sur le disque de démarrage des nœuds, utilisez l'une des méthodes suivantes.

Policy Controller

Policy Controller est une fonctionnalité de GKE Enterprise qui vous permet de déclarer et d'appliquer des règles personnalisées à grande échelle sur vos clusters GKE dans des parcs.

  1. Installer Policy Controller
  2. Définissez une contrainte limitant les types de volumes suivants à l'aide du modèle de contrainte k8sPspVolumeTypes :

L'exemple de contrainte suivant limite ces types de volumes dans tous les pods du cluster :

apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sPSPVolumeTypes
metadata:
  name: deny-boot-disk-writes
spec:
  match:
    kinds:
    - apiGroups: [""]
      kinds: ["Pod"]
  parameters:
    volumes:
    - configMap
    - emptyDir
    - hostPath

Contrôleur d'admission PodSecurity

Le contrôleur d'admission intégré Kubernetes PodSecurity vous permet d'appliquer différents niveaux de sécurité des pods dans des espaces de noms spécifiques ou dans le cluster. La règle de restriction empêche les pods d'écrire sur le disque de démarrage des nœuds.

Pour utiliser le contrôleur d'admission PodSecurity, consultez la section Appliquer des règles de sécurité prédéfinies au niveau du pod à l'aide de PodSecurity.

Chiffrement géré par le client

Si vous souhaitez contrôler et gérer vous-même la rotation des clés de chiffrement, vous pouvez utiliser les clés de chiffrement gérées par le client (CMEK). Ces clés permettent de chiffrer les clés de chiffrement de données qui chiffrent vos données. Pour apprendre à utiliser les CMEK avec les disques de démarrage des nœuds, consultez la page Utiliser les clés de chiffrement gérées par le client.

Une limite des CMEK pour les disques de démarrage des nœuds est qu'elles ne peuvent pas être modifiées après la création du pool de nœuds. Autrement dit :

  • Si le pool de nœuds a été créé avec le chiffrement géré par le client, vous ne pouvez pas désactiver le chiffrement sur les disques de démarrage.
  • Si le pool de nœuds a été créé sans chiffrement géré par le client, vous ne pouvez pas activer le chiffrement sur les disques de démarrage. Vous pouvez néanmoins créer un pool de nœuds avec le chiffrement géré par le client et supprimer le pool de nœuds précédent.

Limites

Avant de configurer un disque de démarrage personnalisé, tenez compte des limitations suivantes :

  • Les séries de machines C3 et G2 ne sont pas compatibles avec le type de disque de démarrage des nœuds pd-standard.

Étapes suivantes