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 auxquels des rejets Kubernetes spécifiques sont appliqués. 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
oukubernetes.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 formatkey=value:operator:effect
, par exempleworkload=hpc:Equal:NoSchedule
. Ce paramètre signifie que le pod ne tolère un rejet que si celui-ci possède exactement la clé et la valeurworkload=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 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'effetNoSchedule
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.
- Pour l'opérateur
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
- Pour en savoir plus, consultez la section Rejets et tolérances de la documentation Kubernetes.
- Découvrez comment associer votre cluster conforme à CNCF.