Wie werden API7 Enterprise Proxy-Anwendungen in Kubernetes-Clustern eingesetzt?
January 24, 2024
In der dynamischen Ära der Cloud-nativen Technologien hat sich Kubernetes als die bevorzugte Lösung für viele Unternehmen etabliert, die widerstandsfähige und skalierbare Anwendungen erstellen möchten. API7 Enterprise bietet leistungsstarke Funktionen in den Bereichen Sicherheit und Traffic-Management sowie eine außergewöhnliche Leistung. API7 Enterprise integriert sich in die Kubernetes Service Discovery und fungiert als Proxy für Anwendungen, die innerhalb eines Kubernetes-Clusters bereitgestellt werden. Lassen Sie uns den Prozess erkunden, wie Sie API7 Enterprise nutzen können, um Anwendungen in Ihrem Kubernetes-Cluster zu proxen.
Voraussetzungen
- Installieren Sie API7 Enterprise
Hinweis: Wenn API7 Enterprise noch nicht innerhalb von Kubernetes-Clustern bereitgestellt wurde, konfigurieren Sie die Netzwerkeinstellungen des Rechners, auf dem API7 EE gehostet wird, um sicherzustellen, dass die Upstream-Pods in der Kubernetes-Umgebung erreichbar sind.
- Dienste in Kubernetes bereitstellen
Wenn Sie bereits Dienste in Kubernetes bereitgestellt haben, können Sie diesen Schritt überspringen. Andernfalls führen Sie den folgenden Befehl aus, um Dienste zu erstellen:
# Erstellen Sie einen neuen Namespace
kubectl create namespace api7ee
kubectl create deployment httpbin --image=kennethreitz/httpbin:latest -n api7ee
kubectl create service clusterip httpbin --tcp=80:80 -n api7ee
- Erstellen Sie ein Kubernetes Service Account
-
API7 Enterprise verlässt sich auf diese Anmeldeinformationen, um auf die Kubernetes-API zuzugreifen und Upstream-Konfigurationen abzurufen. Daher müssen wir zunächst eine
RBAC
-Ressource erstellen. Im Folgenden finden Sie die spezifischeYAML
-Dateikonfiguration:# rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: api7-k8s-sd-watcher rules: - apiGroups: [""] resources: ["endpoints"] verbs: ["list", "watch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: api7-k8s-sd-watcher-binding subjects: - kind: ServiceAccount name: api7-k8s-sd-sa namespace: api7ee roleRef: kind: ClusterRole name: api7-k8s-sd-watcher apiGroup: rbac.authorization.k8s.io --- apiVersion: v1 kind: ServiceAccount metadata: name: api7-k8s-sd-sa namespace: api7ee --- apiVersion: v1 kind: Secret metadata: name: api7-k8s-sd-secret namespace: api7ee annotations: kubernetes.io/service-account.name: api7-k8s-sd-sa type: kubernetes.io/service-account-token
-
Erstellen Sie RBAC-Ressourcen und holen Sie sich dieses Token.
kubectl apply -f rbac.yaml -n api7ee kubectl get secrets api7-k8s-sd-secret -n api7ee -ojsonpath='{.data.token}' | base64 -d
Implementierung der Kubernetes Service Discovery in API7 Enterprise
Verbindung zum Kubernetes Service Registry herstellen
-
Gehen Sie zu einer bestehenden Gateway-Gruppe und greifen Sie über das linke Menü auf die Service Registry zu.
-
Klicken Sie auf die Schaltfläche Add Service Registry Connection. Wählen Sie Kubernetes als Discovery-Typ aus und geben Sie die Zugriffsadresse des Kubernetes-API-Dienstes und das Token an.
- Sobald API7 Enterprise erfolgreich eine Verbindung zur Service Registry hergestellt hat, sehen Sie einen gesunden Status.
Veröffentlichen des Dienstes zum Testen
-
Navigieren Sie zur Dienstseite, klicken Sie auf die Erstellung eines neuen Dienstes und fügen Sie die Route
/anything
hinzu. -
Fahren Sie fort, den Dienst zu veröffentlichen, und wählen Sie den entsprechenden Upstream aus:
- Nach der Veröffentlichung können Sie ihn mit
curl
testen.
Zusammenfassung
Zusammenfassend haben wir die Schritte besprochen, um API7 Enterprise für das Proxying von Kubernetes-Diensten zu nutzen. Weitere Informationen zu den Funktionen von API7 Enterprise finden Sie auf unserer Website. Zögern Sie nicht, mit uns in Kontakt zu treten.