Personnaliser les composants système sur les clusters EKS

Cette page explique comment personnaliser les composants système appartenant à Google dans vos clusters associés à GKE en appliquant des tolérances et des étiquettes personnalisées. Lorsque vous personnalisez ces composants, vous pouvez gérer plus précisément où et comment ils fonctionnent dans votre environnement.

Présentation

Lorsque vous associez un cluster à Google Cloud, par défaut, les composants système appartenant à Google n'incluent pas de champs personnalisables tels que les tolérances. Par conséquent, vous pouvez rencontrer des problèmes tels que l'échec de la planification des pods sur les nœuds disponibles, ce qui a un impact sur l'association et les fonctionnalités globales du cluster. De plus, vous pouvez avoir besoin de contrôler le placement et la gestion des composants sur des nœuds spécifiques, y compris la possibilité d'appliquer des étiquettes personnalisées à des fins organisationnelles et opérationnelles.

La personnalisation des composants système résout ces problèmes et vous permet de mieux contrôler et de rendre plus flexibles le fonctionnement de ces composants dans votre cluster. Vous pouvez appliquer des tolérances et des étiquettes personnalisées aux composants système appartenant à Google :

  • Les tolérances permettent aux composants de Google de planifier des nœuds comportant des rejets Kubernetes spécifiques, ce qui vous permet d'appliquer la séparation des charges de travail ou d'utiliser des pools de nœuds spécialisés. Les tolérances personnalisées résolvent directement les problèmes liés aux rejets non modifiables qui empêchent le placement correct des composants.

  • Les étiquettes vous offrent un moyen flexible de catégoriser et d'identifier les composants système de Google en fonction de vos propres normes opérationnelles. Les étiquettes personnalisées permettent une meilleure intégration avec vos outils existants de surveillance, de journalisation et d'application des règles.

Restrictions et limitations

Les restrictions et limitations suivantes s'appliquent :

  • Vous ne pouvez ajouter des tolérances et des étiquettes personnalisées que lorsque vous enregistrez votre cluster.
  • Vous pouvez ajouter jusqu'à 10 tolérances personnalisées et 10 étiquettes personnalisées à votre cluster.
  • Vous ne pouvez pas utiliser les étiquettes suivantes :

    • name
    • component
    • app
    • Toute étiquette incluant k8s.io ou kubernetes.io, car elles appartiennent à des étiquettes réservées dans Kubernetes
    • Toute étiquette incluant google
    • Toute étiquette incluant gke.io

Ajouter des tolérances personnalisées

Les pods de composants système appartenant à Google incluent toujours la tolérance suivante :

  - key: components.gke.io/gke-managed-components
    operator: Exists

Pour spécifier des tolérances personnalisées, ajoutez l'indicateur --system-component-tolerations à la gcloud container attached clusters register commande :

gcloud container attached clusters register CLUSTER_NAME \
  --location=GOOGLE_CLOUD_REGION \
  ...
  --system-component-tolerations=COMPONENT_TOLERATION \

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster
  • GOOGLE_CLOUD_REGION : la Google Cloud région à partir de laquelle administrer votre cluster
  • COMPONENT_TOLERATION : liste des tolérances que vous souhaitez ajouter, séparées par une virgule Vous pouvez fournir une clé, une valeur, un opérateur et un effet dans les formats suivants :

    • Pour l'opérateur Equal : utilisez le format key=value:operator:effect, par exemple workload=hpc:Equal:NoSchedule. Ce paramètre signifie que le pod tolère un rejet uniquement si celui-ci comporte exactement la même clé et la même valeur que workload=hpc.
    • Pour l'opérateur Exists : utilisez le format key:operator:effect, par exemple workload:Exists:NoSchedule. Ce paramètre signifie que le pod tolère tout rejet comportant la clé workload sur le nœud, quelle que soit la valeur.
    • Pour la planification sur n'importe quel nœud : utilisez le format :operator:effect, par exemple :Exists:NoSchedule. Ce paramètre signifie que le pod tolère tout rejet sur le nœud ayant l'effet NoSchedule et ignore la clé ou la valeur du rejet.

    Pour obtenir la liste des opérateurs et des effets que vous pouvez utiliser, consultez la section Rejets et tolérances de la documentation Kubernetes.

Ajouter des étiquettes personnalisées

Pour spécifier des étiquettes personnalisées, ajoutez l'indicateur --system-component-labels à la commande gcloud container attached clusters register :

gcloud container attached clusters register CLUSTER_NAME \
  --location=GOOGLE_CLOUD_REGION \
  ...
  --system-component-labels=COMPONENT_LABEL \

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster
  • GOOGLE_CLOUD_REGION : la Google Cloud région à partir de laquelle administrer votre cluster
  • COMPONENT_LABEL : liste d'une ou de plusieurs étiquettes que vous souhaitez ajouter, séparées par une virgule Vous fournissez une étiquette et une valeur au format key=value. Par exemple, env=production,region=us-east-1. Bien que chaque étiquette doive comporter une clé, la valeur associée à cette clé peut être vide. Par exemple, backend="".

Étape suivante