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 :
namecomponentapp- Toute étiquette incluant
k8s.iooukubernetes.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 formatkey=value:operator:effect, par exempleworkload=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 queworkload=hpc. - Pour l'opérateur
Exists: utilisez le formatkey:operator:effect, par exempleworkload:Exists:NoSchedule. Ce paramètre signifie que le pod tolère tout rejet comportant la cléworkloadsur 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'effetNoScheduleet 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.
- Pour l'opérateur
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
- En savoir plus sur les rejets et les tolérances dans la documentation Kubernetes
- Découvrez comment associer votre cluster EKS.