Systemkomponenten in EKS-Clustern anpassen

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 Clusterverbindung 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 werden diese Probleme behoben und Sie haben mehr Kontrolle und Flexibilität bei der Funktionsweise 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 mit bestimmten Kubernetes-Markierungen geplant werden. 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 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

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 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 den Wert von workload=hpc hat.
    • Für den Operator Exists: Verwenden Sie das Format key:operator:effect, z. B. 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, z. B. :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 zugehörige Wert kann jedoch leer sein. Beispiel: backend="".

Nächste Schritte