Verwalten der Pod-Platzierung

In Kubernetes werden neu erstellte und nicht geplante Pods automatisch auf Knoten geplant, die ihren Anforderungen entsprechen. Durch die Verwendung von Knotenaffinität, Taints und Toleranzen haben Sie mehr Kontrolle über die Knoten, für die Pods geplant werden. In ArcGIS Enterprise on Kubernetes können Sie die Platzierung neu erstellter GIS-Service-Pods über ArcGIS Enterprise Manager verwalten.

Mit Knotenaffinität können Sie Regeln festlegen, die die Ausführung von Pods auf bestimmte beschriftete Knoten beschränken. Taints werden auf Knoten angewendet, damit diese Pods nicht akzeptieren, während Toleranzen auf Pods angewendet werden, damit diese Taints tolerieren. Weitere Informationen finden Sie in der Dokumentation zu Kubernetes.

Die Kombination aus Knotenaffinität, Taints und Toleranzen ermöglicht eine granulare Steuerung der Arbeitslast-Platzierung, um die Isolation zu verbessern, die Ressourcenzuweisung zu optimieren und den Compliance-Anforderungen innerhalb des Kubernetes-Clusters effektiv gerecht zu werden:

  • Isolieren von Arbeitslasten mit spezialisierten Anforderungen: Verwenden Sie Beschriftungen und Knotenaffinitätsregeln, um sicherzustellen, dass bestimmte Pods auf dedizierten Knoten geplant werden. Verwenden Sie Taints, um Knoten mit bestimmten Eigenschaften, z. B. hohen CPU- oder Speicheranforderungen, als dedizierte Knoten für ArcGIS-Arbeitslasten zu markieren. Wenden Sie dann Toleranzen auf Service-Pods an, um sicherzustellen, dass sie auf Knoten mit den erforderlichen Ressourcen geplant werden.
  • Optimieren der Ressourcenzuweisung: Wenden Sie Taints auf Knoten mit begrenzten Ressourcen an, um eine Überlastung der Ressourcen zu verhindern, und definieren Sie Toleranzen für Service-Pods, die den Ressourcenbeschränkungen auf diesen Knoten entsprechen. Kombinieren Sie Knotenaffinität mit Taints und Toleranzen, um sicherzustellen, dass Service-Pods nur auf Knoten geplant werden, die den entsprechenden Ressourcenanforderungen gerecht werden.
  • Auf Geolokalisierung basierende Planung: Für Anwendungen, die Datenlokalität oder die Einhaltung spezifischer Bestimmungen erfordern, verwenden Sie Knotenaffinität, um Service-Pods basierend auf der geographischen Position von Knoten zu planen. Wenden Sie Taints basierend auf der physischen Position von Knoten oder basierend auf Bestimmungen zur Datenhoheit an, und wenden Sie Toleranzen auf Service-Pods an, um sicherzustellen, dass sie auf Knoten geplant werden und mit den erforderlichen Positionsbeschränkungen kompatibel sind.

Automatische Skalierung verbessert die Verwendung von Knotenaffinität und Toleranzen, indem die Anzahl der Pods dynamisch an die Arbeitslastanforderungen angepasst wird. Durch diese dynamische Skalierung wird sichergestellt, dass Pods effizient auf Knoten geplant werden, die bestimmte Anforderungen erfüllen oder über die erforderlichen Ressourcen verfügen, wodurch die Ressourcenzuweisung optimiert wird. Durch Kombination von automatischer Skalierung mit Knotenaffinität und -toleranzen kann für Kubernetes-Cluster eine bessere Ressourcenauslastung, Performance und Skalierbarkeit erreicht werden. Dies ermöglicht die Anpassung an schwankende Arbeitslasten unter Einhaltung von Knotenbeschränkungen und -präferenzen. Weitere Informationen zur automatischen Skalierung finden Sie unter Service-Skalierung.

Szenarien

Die folgenden Szenarien veranschaulichen, wie Ihre Organisation von der Verwaltung der Pod-Platzierung für Services profitieren kann.

Szenario 1: Saisonaler Anstieg des Datenverkehrs bei öffentlichen Kartenerstellungsservices

Eine öffentliche Organisation verzeichnet während eines örtlichen Festivals eine erhebliche Zunahme des Datenverkehrs. Beim Zugriff auf die Webkarte mit Informationen zur Veranstaltung kommt es zu Verzögerungen durch die hohe Nachfrage beim zugrunde liegenden Kartenservice. Um dieser Situation gerecht zu werden, geht der Organsiationsadministrator folgendermaßen vor:

  • Er konfiguriert Knoten mit hohen CPU- und Speicherressourcen mit dem Schlüssel/Wert-Paar high-performance: true.
  • Er wendet Taints mit workload=high-performance:NoSchedule auf Knoten mit hoher Performance an.
  • Er wendet Knotenaffinitätsregeln an, um sicherzustellen, dass die Kartenservice-Pods auf Knoten mit hohen CPU- und Speicherressourcen geplant werden:
    • Typ: Bevorzugt
    • Schlüssel: high-performance
    • Operator: Ist vorhanden
    • Wert: true
  • Er wendet Toleranzen an, um die Ausführung von Pods auf Knoten zu ermöglichen, auf die Taints für Arbeitslasten mit hoher Performance angewendet wurden, und stellt so sicher, dass der Kartenservice dem Anstieg des Datenverkehrs gerecht werden kann:
    • Effekt: NoSchedule
    • Schlüssel: workload
    • Operator: Gleich
    • Wert: high-performance

Szenario 2: Datenverarbeitung für die Umweltüberwachung

Eine Umweltbehörde führt eine Reihe von räumlichen Analysen durch, um Änderungen bei der Flächennutzung zu überwachen. Die Analyse erfordert beträchtliche Rechenressourcen, und die Behörde hat zu diesem Zweck dedizierte Knoten mit GPUs bereitgestellt. Um sicherzustellen, dass die räumliche Analyse effektiv ausgeführt wird, ohne mit anderen Services um Ressourcen zu konkurrieren, geht der Organisationsadministrator folgendermaßen vor:

  • Er konfiguriert GPU-fähige Knoten mit dem Schlüssel/Wert-Paar gpu: true.
  • Er wendet Taints auf GPU-Knoten mit workload=high-resource:NoSchedule an, um zu verhindern, dass weniger ressourcenintensive Pods dort geplant werden.
  • Er wendet Knotenaffinitätsregeln an, um die Analyse-Pods auf den GPU-Knoten zu planen:
    • Typ: Erforderlich
    • Schlüssel: gpu
    • Operator: In
    • Wert: true
  • Er wendet Toleranzen an, um die Ausführung von Pods auf den GPU-Knoten mit Taints zuzulassen:
    • Effekt: NoSchedule
    • Schlüssel: workload
    • Operator: Gleich
    • Wert: high-resource

Szenario 3: Ressourcenoptimierung für freigegebene Feature-Services

Die GIS-Abteilung einer Stadt verfügt über zahlreiche Feature-Services, die zwar nicht intensiv genutzt werden, aber insgesamt eine einzelne Service-Bereitstellung belasten. Damit die Abteilung die Service-Verfügbarkeit aufrechterhalten kann, ohne das System zu überlasten, geht der Organisationsadministrator folgendermaßen vor:

  • Er konfiguriert Knoten mit dem Schlüssel resource-constrained.
  • Er wendet mit resource-constrained:PreferNoSchedule Taints auf Knoten mit Ressourceneinschränkungen an.
  • Er wendet Knotenaffinitätsregeln an, um die Planung für Knoten mit geringerer Ressourcenverfügbarkeit zu priorisieren:
    • Typ: Bevorzugt
    • Schlüssel: resource-constrained
    • Operator: DoesNotExist
  • Er wendet Toleranzen auf Feature-Service-Pods an, um sicherzustellen, dass diese trotz der Beschränkungen auf Knoten mit Taints geplant werden können:
    • Effekt: PreferNoSchedule
    • Schlüssel: resource-constrained
    • Operator: Ist vorhanden

Verwalten der Pod-Platzierung

Konfigurieren Sie vor dem Verwalten der Pod-Platzierung Knotengruppen, indem Sie die Beschriftungen, die zur Definition der Knotenaffinität verwendet werden sollen, und die Taints, für die Toleranzen festgelegt werden sollen, hinzufügen.

Hinweis:

In den meisten Umgebungen können Sie die Arbeitslasten mithilfe von Knotenpools oder Knotengruppen gruppieren. Es wird empfohlen, in diesem Workflow Beschriftungen und Taints auf Gruppen von Knoten und nicht auf einzelne Knoten anzuwenden.

Führen Sie die folgenden Schritte aus, um Knotenaffinitätsregeln und Toleranzen für neu erstellte GIS-Service-Pods festzulegen:

  1. Melden Sie sich bei ArcGIS Enterprise Manager als Administrator an.
  2. Klicken Sie auf die Schaltfläche Services auf der Seitenleiste.
  3. Wählen Sie den GIS-Service aus, den Sie verwalten möchten, und klicken Sie auf die Registerkarte Pod-Platzierung.
  4. Um Pods eine Knotenaffinitätsregel hinzuzufügen, geben Sie im Abschnitt Knotenaffinität die folgenden Informationen an, und klicken Sie auf Hinzufügen:
    • Typ: Der Typ der Knotenaffinität. Folgende Typen sind verfügbar:
      • Bevorzugt (PreferredDuringSchedulingIgnoredDuringExecution): Der Pod wird bevorzugt auf einem Knoten geplant, der die Regel erfüllt.
      • Erforderlich (RequiredDuringSchedulingIgnoredDuringExecution): Der Pod muss auf einem Knoten geplant werden, der die Regel erfüllt.
    • Schlüssel: Der Schlüssel der Knotenbeschriftung oder -annotation, auf den die Regel zutreffen soll.
    • Operator: Der Operator für die Regel. Die folgenden Operatoren sind verfügbar:
      • In: Die Knotenbeschriftung oder -annotation muss in der Liste der angegebenen Werte enthalten sein.
      • Nicht in: Die Knotenbeschriftung oder -annotation darf nicht in der Liste der angegebenen Werte enthalten sein.
      • Ist vorhanden: Der Knoten muss die angegebene Beschriftung oder Annotation aufweisen.
      • Ist nicht vorhanden: Der Knoten darf die angegebene Beschriftung oder Annotation nicht aufweisen.
    • Wert: Die Liste der Werte, die mit der Knotenbeschriftung oder -annotation abgeglichen werden sollen.
  5. Um Pods Toleranzen hinzuzufügen, geben Sie im Abschnitt Toleranzen die folgenden Informationen an, und klicken Sie auf Hinzufügen:
    • Effekt: Der Taint-Effekt, dem die Toleranz entsprechen muss. Folgende Effekte sind verfügbar:
      • NoSchedule: Neue Pods werden nicht auf dem Knoten mit Taint geplant, wenn keine übereinstimmende Toleranz vorhanden ist.
      • PreferNoSchedule: Das Planen neuer Pods auf dem Knoten mit Taint ohne übereinstimmende Toleranz wird nach Möglichkeit vermieden, dies wird jedoch nicht garantiert.
    • Schlüssel: Der Schlüssel des Taint, mit dem die Toleranz übereinstimmen muss.
    • Operator: Der für die Toleranz zu verwendende Operator. Die folgenden Operatoren sind verfügbar:
      • Gleich: Der Pod toleriert einen Taint mit dem angegebenen Schlüssel und Wert.
      • Ist vorhanden: Der Pod toleriert jeden Taint mit dem angegebenen Schlüssel.
    • Wert: Der Wert des Taint, mit dem die Toleranz übereinstimmen muss, wenn für die Operation "Gleich" festgelegt ist.
  6. Klicken Sie auf Speichern.

    Bearbeiten Sie Knotenaffinitätsregeln und Toleranzen, indem Sie auf die Schaltfläche Bearbeiten Bearbeiten neben jeder Auflistung klicken, oder löschen Sie sie, indem Sie auf die Schaltfläche Löschen Löschen klicken.

    Hinweis:

    Pods, die bereits auf Knoten ausgeführt werden, werden nicht entfernt, wenn eine Änderung vorgenommen wird und die Regel oder die Toleranz nicht mehr erfüllt ist.