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 persistant sur lequel installer le système de fichiers de nœud Kubernetes. Par défaut, GKE utilise des disques persistants standards. Vous pouvez également spécifier un disque persistant SSD.

Les disques persistants SSD peuvent améliorer les performances de vos nœuds pour certaines charges de travail. Toutefois, le fait de choisir un disque persistant SSD comme disque de démarrage des nœuds entraîne des frais supplémentaires. Pour en savoir plus, consultez la page Options de stockage.

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

L'utilisation d'un disque persistant 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.

Pour en savoir plus sur les performances des disques persistants SSD par rapport aux disques persistants standards, consultez la section Comparer les performances des options de stockage de blocs.

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

Vous pouvez spécifier le type de disque de démarrage, standard ou SSD, 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.

[DISK-TYPE] peut être soit :

  • pd-standard, un disque persistant standard (type par défaut) ;
  • pd-balanced, un disque persistant avec équilibrage
  • pd-ssd, un disque persistant SSD.

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 :

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 persistant 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 Google Cloud Console :

  1. Accédez au menu Google Kubernetes Engine de Cloud Console.

    Accéder au menu 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 Disque persistant standard ou Disque persistant SSD.

  6. Cliquez sur Create (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 au menu Google Kubernetes Engine de Cloud Console.

    Accéder au menu 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 le pool de nœuds comme vous le souhaitez.

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

  6. Dans la liste déroulante Type de disque de démarrage, sélectionnez Disque persistant standard ou Disque persistant SSD.

  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

Vous pouvez éviter d'écrire directement les données des pods sur les disques de démarrage des nœuds, et leur demander d'en écrire uniquement sur les disques associés. Pour empêcher vos pods d'écrire sur des disques de démarrage, excluez les volumes suivants du champ volumes de votre règle PodSecurityPolicy :

  • configMap
  • emptyDir (si le volume n'est pas sauvegardé par tmpfs)
  • hostPath

L'exemple de règle PodSecurityPolicy suivant (preventWritingToBootDisk.yaml) empêche l'écriture de données sur les disques de démarrage :

apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: preventWritingToBootDisk
spec:
  Volumes: # Exclude configMap, emptyDir (if not backed by tmpfs), and hostPath.
           # Include all other desired volumes.
     - 'persistentVolumeClaim'
  # Required fields.
  runAsUser:
    rule: 'RunAsAny'
  seLinux:
    rule: 'RunAsAny'
  supplementalGroups:
    rule: 'RunAsAny'
  fsGroup:
    rule: 'RunAsAny'

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.

Tenez compte de l'existence de certaines limites lors de l'utilisation des disques de démarrage des nœuds :

  • Vous ne pouvez pas activer ni désactiver le chiffrement géré par le client pour les disques de démarrage associés aux clusters ou aux pools de nœuds existants.
  • Vous ne pouvez utiliser les clés de chiffrement gérées par le client que pour les disques persistants pd-standard et pd-ssd.

Étape suivante