Systemkomponenten in CNCF-konformen Clustern anpassen

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:

    • name
    • component
    • app
    • Alle Labels, die k8s.io oder kubernetes.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

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 Format key=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 Wert workload=hpc hat.
    • Für den Operator Exists: Verwenden Sie das Format key:operator:effect, zum Beispiel workload:Exists:NoSchedule. Diese Einstellung bedeutet, dass der Pod jede Markierung mit dem Schlüssel workload auf 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 Effekt NoSchedule 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.

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 Wert kann jedoch leer sein. Beispiel: backend="".

Nächste Schritte