Personnaliser les composants système sur les clusters AKS

Cette page explique comment personnaliser les composants système appartenant à Google dans vos clusters GKE associés en appliquant des tolérances et des libellés personnalisés. 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, les composants système appartenant à Google n'incluent pas par défaut 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'attachement et la fonctionnalité globale du cluster. Vous pouvez également 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 libellés personnalisés à 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 libellés personnalisés aux composants système appartenant à Google :

  • Les tolérances permettent aux composants Google de planifier des nœuds qui présentent des rejets Kubernetes spécifiques. Vous pouvez ainsi appliquer la séparation des charges de travail ou 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 libellés vous permettent de classer et d'identifier de manière flexible les composants système de Google en fonction de vos propres normes opérationnelles. Les libellés personnalisés 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 limites suivantes s'appliquent :

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

    • name
    • component
    • app
    • Tout libellé incluant k8s.io ou kubernetes.io, car ils appartiennent aux libellés réservés dans Kubernetes
    • Tout libellé incluant google
    • Tout libellé 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'option --system-component-tolerations à la commande gcloud container attached clusters register :

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 : région Google Cloud depuis laquelle administrer votre cluster.
  • COMPONENT_TOLERATION : liste des tolérances à 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 possède exactement la clé et la valeur 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 toute propriété de rejet avec la clé workload sur le nœud, quelle que soit la valeur.
    • Pour planifier 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 Rejets et tolérances dans la documentation Kubernetes.

Ajouter des libellés personnalisés

Pour spécifier des libellés personnalisés, ajoutez l'option --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 : région Google Cloud depuis laquelle administrer votre cluster.
  • COMPONENT_LABEL : liste d'une ou de plusieurs étiquettes à ajouter, séparées par une virgule. Vous fournissez un libellé et une valeur au format key=value. Par exemple, env=production,region=us-east-1. Bien que chaque libellé doive comporter une clé, la valeur associée à cette clé peut être vide. Par exemple, backend="".

Étapes suivantes