Auf dieser Seite wird beschrieben, wie Sie von Google verwaltete 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 diese Komponenten in Ihrer Umgebung ausgeführt werden.
Übersicht
Wenn Sie einen Cluster an Google Cloudanhängen, enthalten von Google verwaltete System komponenten standardmäßig keine anpassbaren Felder wie Toleranzen. Daher können Probleme auftreten, z. B. dass Pods nicht auf verfügbaren Knoten geplant werden können, was sich auf das Anhängen und die Funktionalität des Clusters insgesamt 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 das Anpassen von Systemkomponenten werden diese Probleme behoben und Sie haben mehr Kontrolle und Flexibilität bei der Ausführung dieser Komponenten in Ihrem Cluster. Sie können benutzerdefinierte Toleranzen und Labels auf von Google verwaltete Systemkomponenten anwenden:
Toleranzen ermöglichen es, dass Google-Komponenten auf Knoten mit bestimmten Kubernetes-Markierungen geplant werden können. So können Sie die Trennung von Arbeitslasten erzwingen oder spezielle Knotenpools verwenden. Benutzerdefinierte Toleranzen beheben Probleme direkt, bei denen nicht änderbare Markierungen die ordnungsgemäße Platzierung von Komponenten verhindern.
Labels bieten 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 Richtlinienerzwingung.
Limits und Einschränkungen
Es gelten die folgenden Einschränkungen:
- Sie können nur beim Registrieren Ihres Clusters benutzerdefinierte Toleranzen und Labels hinzufügen.
- Sie können Ihrem Cluster bis zu 10 benutzerdefinierte Toleranzen und 10 benutzerdefinierte Labels hinzufügen.
Sie können die folgenden Labels nicht verwenden:
namecomponentapp- Alle Labels, die
k8s.iooderkubernetes.ioenthalten, da sie zu reservierten Labels in Kubernetes gehören - Alle Labels, die
googleenthalten - Alle Labels, die
gke.ioenthalten
Benutzerdefinierte Toleranzen hinzufügen
Pods von von Google verwalteten Systemkomponenten enthalten immer die folgende Toleranz:
- key: components.gke.io/gke-managed-components
operator: Exists
Wenn Sie benutzerdefinierte Toleranzen angeben möchten, fügen Sie das --system-component-tolerations Flag dem
gcloud container attached clusters register Befehl 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, einen Wert, einen Operator und einen 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 Wertworkload=hpchat. - Für den Operator
Exists: Verwenden Sie das Formatkey:operator:effect, zum Beispielworkload:Exists:NoSchedule. Diese Einstellung bedeutet, dass der Pod jede Markierung mit dem Schlüsselworkloadauf dem Knoten toleriert, unabhängig vom Wert. - Für die Planung auf einem beliebigen Knoten: Verwenden Sie das Format
:operator:effect, zum Beispiel,:Exists:NoSchedule. Diese Einstellung bedeutet, dass der Pod jede Markierung auf dem Knoten mit dem EffektNoScheduletoleriert 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=valuean. Beispiel:env=production,region=us-east-1. Jedes Label muss einen Schlüssel haben, der Wert kann jedoch leer sein. Beispiel:backend="".
Nächste Schritte
- Weitere Informationen zu Markierungen und Toleranzen finden Sie in der Kubernetes-Dokumentation.
- Informationen zum Anhängen Ihres CNCF-konformen Clusters.