Dies ist eine unveröffentlichte Dokumentation für SUSE® Storage 1.12 (Dev).

CSI-Komponenten-Pod-Anti-Affinität

Dieses Dokument beschreibt, wie man die Pod-Anti-Affinität für Longhorn CSI-Komponenten konfiguriert. Die Pod-Anti-Affinität erhöht die Speicherresilienz, insbesondere in kleinen Clustern, indem sichergestellt wird, dass mehrere Replikate einer CSI-Komponente nicht auf demselben Knoten ausgeführt werden.

Für Details zur Pod-Anti-Affinität siehe die Kubernetes-Dokumentation zu inter-pod affinity and anti-affinity.

Konfiguration der Pod-Anti-Affinität für Longhorn CSI-Komponenten

Sie können die Pod-Anti-Affinität für diese Longhorn CSI-Komponenten konfigurieren:

  • csi-attacher

  • csi-provisioner

  • csi-resizer

  • csi-snapshotter

Die podAntiAffinityPreset-Einstellung akzeptiert die folgenden Werte:

  • soft (Standard): Eine Best-Effort-Regel unter Verwendung von preferredDuringSchedulingIgnoredDuringExecution. Der Scheduler versucht, mehrere CSI-Replikate nicht auf demselben Knoten zu platzieren, aber dies ist nicht garantiert.

  • hard: Eine strenge Regel unter Verwendung von requiredDuringSchedulingIgnoredDuringExecution. Der Scheduler blockiert die Pod-Platzierung auf Knoten, die die Anti-Affinitätsregel verletzen. Pods können im Pending-Zustand verbleiben, wenn keine geeigneten Knoten vorhanden sind.

Konfiguration während der SUSE Storage-Installation

Sie können die Pod-Anti-Affinität während der initialen Installation mit einer der folgenden Methoden festlegen.

Verwendung von Rancher

Beim Installieren von SUSE Storage über die Rancher-Benutzeroberfläche wählen Sie Edit as YAML und fügen Sie die folgenden Parameter zur YAML-Datei hinzu:

csi:
    podAntiAffinityPreset: "hard"

Verwendung von Helm

Beim Installieren von SUSE Storage mit Helm setzen Sie den csi.podAntiAffinityPreset-Wert in Ihrer values.yaml-Datei:

csi:
  podAntiAffinityPreset: hard

Nachdem Sie es zu Ihrer values.yaml-Datei hinzugefügt haben, installieren Sie das Chart wie gewohnt.

Verwendung von Kubectl

Wenn Sie SUSE Storage mit kubectl bereitstellen, bearbeiten Sie die longhorn-driver-deployer Implementierung manuell und fügen Sie die folgende Umgebungsvariable zur Containerspezifikation hinzu:

- name: CSI_POD_ANTIAFFINITY_PRESET
  value: hard

Konfiguration nach der SUSE Storage-Installation

Das Bearbeiten der Implementierung setzt longhorn-driver-deployer und alle CSI-Pods neu ein.

Um eine vorhandene Installation zu aktualisieren, bearbeiten Sie manuell die longhorn-driver-deployer-Implementierung und fügen Sie die folgende Umgebungsvariable zur Containerspezifikation hinzu:

- name: CSI_POD_ANTIAFFINITY_PRESET
  value: hard