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
-
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 -
Ein Gateway-Controller läuft in Ihrem Cluster (zum Beispiel Istio, Envoy Gateway, Cilium, NGINX Gateway Fabric, Traefik und andere).
-
Mindestens eine Gateway-Ressource bereitgestellt und konfiguriert.
Helm-Werte-Konfiguration
Die folgenden Helm-Werte steuern die Generierung von HTTPRoute:
| Tasten | Typ | Standard | Beschreibung |
|---|---|---|---|
|
bool |
|
Aktivieren Sie die Generierung von HTTPRoute für die SUSE Storage UI |
|
list |
|
Gateway-Referenzen, die angeben, welches Gateway oder welche Gateways diese Route bearbeiten sollen. |
|
list |
|
Liste der Hostnamen für die HTTPRoute |
|
Zeichenfolge |
|
Pfad zum Zugriff auf die SUSE Storage UI |
|
Zeichenfolge |
|
Pfadübereinstimmungstyp: |
|
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
-
Überprüfen Sie, ob die HTTPRoute erstellt wurde:
kubectl get httproute -n longhorn-system -
Überprüfen Sie die HTTPRoute-Details:
kubectl describe httproute longhorn-httproute -n longhorn-system -
Ü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: TrueundResolvedRefs: Trueanzeigen. -
Greifen Sie über die externe IP-Adresse oder den Hostnamen Ihres Gateways auf die SUSE Storage UI zu.