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

Erstellen Sie eine HTTPRoute mit der Gateway-API

Wenn Sie SUSE Storage auf einem Kubernetes-Cluster mit kubectl oder Helm installieren, können Sie Gateway API HTTPRoute als moderne Alternative zu Ingress verwenden, um die SUSE Storage UI für externen Verkehr bereitzustellen.

Die Gateway-API ist der Nachfolger von Ingress und bietet ausdrucksstärkere Routing-Funktionen sowie einen standardisierten Ansatz über verschiedene Implementierungen hinweg.

Voraussetzungen

  1. Gateway API CRDs installiert in Ihrem Cluster:

    kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.2.0/standard-install.yaml
  2. Ein Gateway-Controller läuft in Ihrem Cluster (zum Beispiel Istio, Envoy Gateway, Cilium, NGINX Gateway Fabric, Traefik und andere).

  3. Mindestens eine Gateway-Ressource bereitgestellt und konfiguriert.

Helm-Werte-Konfiguration

Die folgenden Helm-Werte steuern die Generierung von HTTPRoute:

Tasten Typ Standard Beschreibung

httproute.enabled

bool

false

Aktivieren Sie die Generierung von HTTPRoute für die SUSE Storage UI

httproute.parentRefs

list

[]

Gateway-Referenzen, die angeben, welches Gateway oder welche Gateways diese Route bearbeiten sollen.

httproute.hostnames

list

[]

Liste der Hostnamen für die HTTPRoute

httproute.path

Zeichenfolge

"/"

Pfad zum Zugriff auf die SUSE Storage UI

httproute.pathType

Zeichenfolge

"PathPrefix"

Pfadübereinstimmungstyp: Exact, PathPrefix oder RegularExpression

httproute.annotations

object

{}

Annotationen für die HTTPRoute-Ressource

Standardinstallation

Installieren Sie SUSE Storage mit aktivierter HTTPRoute:

helm install longhorn longhorn/longhorn \
  --namespace longhorn-system \
  --create-namespace \
  --set "httproute.enabled=true" \
  --set "httproute.parentRefs[0].name=my-gateway" \
  --set "httproute.parentRefs[0].namespace=default" \
  --set "httproute.hostnames[0]=longhorn.example.com"

Erweiterte Konfiguration

Für komplexere Setups erstellen Sie eine Werte-Datei:

httproute:
  enabled: true
  parentRefs:
    - name: primary-gateway
      namespace: gateway-system
    - name: secondary-gateway
      namespace: gateway-system
      sectionName: https  # Target specific listener
  hostnames:
    - longhorn.example.com
    - longhorn.example.org
  path: /longhorn
  pathType: PathPrefix
  annotations:
    custom-annotation: "value"

Installation mit der Werte-Datei:

helm install longhorn longhorn/longhorn \
  --namespace longhorn-system \
  --create-namespace \
  --values values.yaml

Überprüfung

  1. Überprüfen Sie, ob die HTTPRoute erstellt wurde:

    kubectl get httproute -n longhorn-system
  2. Überprüfen Sie die HTTPRoute-Details:

    kubectl describe httproute longhorn-httproute -n longhorn-system
  3. Überprüfen Sie, ob die Route vom Gateway akzeptiert wird:

    kubectl get httproute longhorn-httproute -n longhorn-system -o jsonpath='{.status.parents[*].conditions}'

    Die Ausgabe sollte Accepted: True und ResolvedRefs: True anzeigen.

  4. Greifen Sie über die externe IP-Adresse oder den Hostnamen Ihres Gateways auf die SUSE Storage UI zu.