Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar.

Installieren Sie SUSE Storage mit Rancher

Ein Vorteil der Installation von SUSE Storage über den Rancher Apps Marketplace ist, dass Rancher die Authentifizierung für die SUSE Storage Benutzeroberfläche bereitstellt.

Wenn eine neue Version von SUSE Storage verfügbar ist, sehen Sie ein Upgrade Available Zeichen auf dem Apps Marketplace Bildschirm. Sie können auf die Upgrade Schaltfläche klicken, um ein Upgrade des Longhorn Managers durchzuführen. Weitere Informationen zum Upgrade finden Sie hier.

Voraussetzungen

Jeder Knoten im Kubernetes-Cluster, in dem SUSE Storage installiert ist, muss diese Anforderungen erfüllen.

Das Longhorn Kommandozeilenwerkzeug kann verwendet werden, um die SUSE Storage Umgebung auf potenzielle Probleme zu überprüfen.

Authentifizierung

Um den longhorn-system Namespace zu erstellen, führen Sie den folgenden Befehl aus:

kubectl create namespace longhorn-system

Befolgen Sie die Kubernetes-Authentifizierungsdokumentation, um ein Geheimnis im longhorn-system Namespace zu erstellen.

kubectl create secret docker-registry application-collection \
  --docker-server=dp.apps.rancher.io \
  --namespace=longhorn-system \
  --docker-username=<your-username-or-service-account-username> \
  --docker-password=<access-token-or-service-account-secret>

Installation

Um SUSE Storage aus der SUSE Application Collection anstelle der Standard-Longhorn-Community-Charts von Rancher zu installieren, konfigurieren Sie ein neues Repository in Rancher, das auf das Chart-Repository der SUSE Application Collection für SUSE Storage verweist. Lesen Sie diese Anleitung für Details zum Prozess und zur Authentifizierung des Chart-Repositories.

Die folgenden Schritte bieten ein Beispiel in Rancher. Für detaillierte Anleitungen verweisen Sie auf die Rancher-Dokumentation.

  1. Gehen Sie in Rancher zu Apps > Repositories.

    Bild
  2. Klicken Sie auf die Erstellen Schaltfläche.

  3. Wählen Sie OCI Repository in den Optionsfeldern und geben Sie den Pfad zur OCI-Chart-Registry oci://dp.apps.rancher.io/charts/suse-storage zusammen mit den Authentifizierungsdaten ein, und klicken Sie dann auf Erstellen.

    Bild

    Das Repository sollte erfolgreich hinzugefügt werden.

    Bild
  4. In Apps > Chart können Sie suse-storage sehen, das zur Installation verfügbar ist.

    Bild
  5. Klicken Sie auf Installieren.

    Bild
  6. Optional: Wählen Sie das Projekt aus, in dem Sie SUSE Storage installieren möchten.

  7. Optional: Passen Sie die Standardeinstellungen an.

    Bild

    Wenn Sie SUSE Rancher Prime verwenden, ist es zwingend erforderlich, Container-Registry für Rancher-Systemcontainer-Images zu aktivieren und den Wert auf dp.apps.rancher.io zu setzen, um sicherzustellen, dass die Images aus dem richtigen Repository abgerufen werden.

    Bild
  8. Klicken Sie auf „Weiter“. Fügen Sie im YAML-Editor den Wert application-collection im Feld global.imagePullSecrets hinzu.

    Bild
  9. Klicken Sie auf Weiter. SUSE Storage wird im Namespace longhorn-system installiert.

    Bild
  10. Klicken Sie auf das SUSE Storage App-Symbol, um zum SUSE Storage Dashboard zu navigieren.

    Bild

Nachdem SUSE Storage installiert ist, können Sie die SUSE Storage Benutzeroberfläche aufrufen, indem Sie die Option Longhorn im linken Bereich von Rancher auswählen.

Zugriff auf die Benutzeroberfläche mit aktivierter Netzwerkrichtlinie

Bitte beachten Sie, dass der Zugriff auf die Benutzeroberfläche von Rancher eingeschränkt sein kann, wenn die Netzwerkrichtlinie aktiviert ist.

Rancher interagiert mit der SUSE Storage Benutzeroberfläche über einen Dienst namens remotedialer, der Verbindungen zwischen Rancher und den verwalteten Downstream-Clustern erleichtert. Dieser Dienst ermöglicht es einem Benutzeragenten, über einen Endpunkt auf dem Rancher-Server auf den Cluster zuzugreifen. Remotedialer verbindet sich mit dem SUSE Storage UI-Dienst, indem er den Kubernetes API-Server als Proxy verwendet.

Wenn die Netzwerkrichtlinie aktiviert ist, kann der Kubernetes API-Server jedoch möglicherweise keine Pods auf verschiedenen Knoten erreichen. Dies geschieht, weil der Kubernetes API-Server innerhalb des Netzwerk-Namespaces des Hosts ohne eine dedizierte IP-Adresse pro Pod arbeitet. Wenn Sie das Calico CNI-Plugin verwenden, löst jeder Prozess im Netzwerk-Namespace des Hosts (wie der API-Server), der sich mit einem Pod verbindet, aus, dass Calico das Paket in IPIP kapselt, bevor es an den Remote-Host weitergeleitet wird. Die Tunneladresse wird als Quelle gewählt, um sicherzustellen, dass der Remote-Host weiß, wie er die Rückpakete korrekt kapseln kann.

Mit anderen Worten, um den Proxy mit der Netzwerkrichtlinie arbeiten zu lassen, muss die Tunnel-IP jedes Knotens identifiziert und in der Richtlinie ausdrücklich erlaubt werden.

Sie können die Tunnel-IP finden, indem Sie:

$ kubectl get nodes -oyaml | grep "Tunnel"
      projectcalico.org/IPv4VXLANTunnelAddr: 10.42.197.0
      projectcalico.org/IPv4VXLANTunnelAddr: 10.42.99.0
      projectcalico.org/IPv4VXLANTunnelAddr: 10.42.158.0
      projectcalico.org/IPv4VXLANTunnelAddr: 10.42.80.0

Erlauben Sie als Nächstes den Datenverkehr in der Netzwerkrichtlinie unter Verwendung der Tunnel-IP. Möglicherweise müssen Sie die Netzwerkrichtlinie aktualisieren, wenn neue Knoten zum Cluster hinzugefügt werden.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: longhorn-ui-frontend
  namespace: longhorn-system
spec:
  podSelector:
    matchLabels:
      app: longhorn-ui
  policyTypes:
  - Ingress
  ingress:
  - from:
    - ipBlock:
        cidr: 10.42.197.0/32
    - ipBlock:
        cidr: 10.42.99.0/32
    - ipBlock:
        cidr: 10.42.158.0/32
    - ipBlock:
        cidr: 10.42.80.0/32
    ports:
      - port: 8000
        protocol: TCP

Eine weitere Möglichkeit, das Problem zu lösen, besteht darin, die Serverknoten mit egress-selector-mode: cluster auszuführen. Für weitere Informationen siehe RKE2 Serverkonfiguration und K3s Control-Plane Egress Selector-Konfiguration.