Auf dieser Seite wird beschrieben, wie Sie von Google entwickelte Systemkomponenten in Ihren angehängten GKE-Clustern anpassen, indem Sie benutzerdefinierte Toleranzen und Labels anwenden. Wenn Sie diese Komponenten anpassen, können Sie genauer festlegen, wo und wie sie in Ihrer Umgebung funktionieren.
Übersicht
Wenn Sie einen Cluster an Google Cloudanhängen, enthalten Google-eigene Systemkomponenten standardmäßig keine anpassbaren Felder wie Toleranzen. Dies kann zu Problemen führen, z. B. dass Pods nicht auf verfügbaren Knoten geplant werden können, was sich auf die gesamte Clusteranbindung und -funktionalität auswirkt. Außerdem benötigen Sie möglicherweise die Möglichkeit, Komponenten auf bestimmten Knoten zu platzieren und zu verwalten, einschließlich der Möglichkeit, benutzerdefinierte Labels für organisatorische und betriebliche Zwecke anzuwenden.
Durch die Anpassung von Systemkomponenten lassen sich diese Probleme beheben. Außerdem erhalten Sie so mehr Kontrolle und Flexibilität beim Betrieb dieser Komponenten in Ihrem Cluster. Sie können benutzerdefinierte Toleranzen und Labels auf Google-eigene Systemkomponenten anwenden:
Toleranzen ermöglichen es, dass Google-Komponenten auf Knoten geplant werden, die bestimmte Kubernetes-Markierungen haben. So können Sie die Arbeitslasttrennung erzwingen oder spezielle Knotenpools verwenden. Mit benutzerdefinierten Toleranzen lassen sich Probleme direkt beheben, bei denen nicht änderbare Taints die richtige Platzierung von Komponenten verhindern.
Labels bieten Ihnen eine flexible Möglichkeit, die Systemkomponenten von Google nach Ihren eigenen Betriebsstandards zu kategorisieren und zu identifizieren. Benutzerdefinierte Labels ermöglichen eine bessere Integration in Ihre vorhandenen Tools für Monitoring, Logging und Richtliniendurchsetzung.
Limits und Einschränkungen
Es gelten die folgenden Einschränkungen:
- Sie können nur benutzerdefinierte Toleranzen und Labels hinzufügen, wenn Sie Ihren Cluster registrieren.
- Sie können Ihrem Cluster bis zu 10 benutzerdefinierte Toleranzen und 10 benutzerdefinierte Labels hinzufügen.
Die folgenden Labels dürfen nicht verwendet werden:
name
component
app
- Alle Labels, die
k8s.io
oderkubernetes.io
enthalten, da sie zu reservierten Labels in Kubernetes gehören. - Alle Labels, die
google
enthalten - Alle Labels, die
gke.io
enthalten
Benutzerdefinierte Toleranzen hinzufügen
Google-eigene Systemkomponenten-Pods enthalten immer die folgende Tolerierung:
- key: components.gke.io/gke-managed-components
operator: Exists
Wenn Sie benutzerdefinierte Toleranzen angeben möchten, fügen Sie dem Befehl gcloud container attached clusters register
das Flag --system-component-tolerations
hinzu:
gcloud container attached clusters register CLUSTER_NAME \
--location=GOOGLE_CLOUD_REGION \
...
--system-component-tolerations=COMPONENT_TOLERATION \
Ersetzen Sie Folgendes:
- CLUSTER_NAME: Der Name Ihres Clusters.
- GOOGLE_CLOUD_REGION: die Google Cloud Region, in der Sie Ihren Cluster verwalten möchten.
COMPONENT_TOLERATION: Die durch Kommas getrennte Liste der Toleranzen, die Sie hinzufügen möchten. Sie können einen Schlüssel, Wert, Operator und Effekt in den folgenden Formaten angeben:
- Für den Operator
Equal
: Verwenden Sie das Formatkey=value:operator:effect
, z. B.workload=hpc:Equal:NoSchedule
. Diese Einstellung bedeutet, dass der Pod eine Markierung nur toleriert, wenn die Markierung genau den Schlüssel und den Wert vonworkload=hpc
hat. - Für den Operator
Exists
: Verwenden Sie das Formatkey:operator:effect
, z. B.workload:Exists:NoSchedule
. Diese Einstellung bedeutet, dass der Pod jede Markierung mit dem Schlüsselworkload
auf dem Knoten toleriert, unabhängig vom Wert. - Für die Planung auf einem beliebigen Knoten: Verwenden Sie das Format
:operator:effect
, z. B.:Exists:NoSchedule
. Diese Einstellung bedeutet, dass der Pod jede Markierung auf dem Knoten mit dem EffektNoSchedule
toleriert und den Schlüssel oder Wert der Markierung ignoriert.
Eine Liste der Operatoren und Effekte, die Sie verwenden können, finden Sie in der Kubernetes-Dokumentation unter Markierungen und Toleranzen.
- Für den Operator
Benutzerdefinierte Labels hinzufügen
Wenn Sie benutzerdefinierte Labels angeben möchten, fügen Sie dem Befehl gcloud container attached clusters register
das Flag --system-component-labels
hinzu:
gcloud container attached clusters register CLUSTER_NAME \
--location=GOOGLE_CLOUD_REGION \
...
--system-component-labels=COMPONENT_LABEL \
Ersetzen Sie Folgendes:
- CLUSTER_NAME: Der Name Ihres Clusters.
- GOOGLE_CLOUD_REGION: die Google Cloud Region, in der Sie Ihren Cluster verwalten möchten.
- COMPONENT_LABEL: Die durch Kommas getrennte Liste mit einem oder mehreren Labels, die Sie hinzufügen möchten. Sie geben ein Label und einen Wert im Format
key=value
an. Beispiel:env=production,region=us-east-1
Jedes Label muss einen Schlüssel haben, der zugehörige Wert kann jedoch leer sein. Beispiel:backend=""
.
Nächste Schritte
- Weitere Informationen finden Sie in der Kubernetes-Dokumentation unter Markierungen und Toleranzen.
- Informationen zum Anhängen Ihres EKS-Clusters