Wie werden API7 Enterprise Proxy-Anwendungen in Kubernetes-Clustern eingesetzt?

January 24, 2024

Products

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

  1. 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.

  1. 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
  1. 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 spezifische YAML-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

  1. Gehen Sie zu einer bestehenden Gateway-Gruppe und greifen Sie über das linke Menü auf die Service Registry zu.

  2. 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.

PA_1

  1. Sobald API7 Enterprise erfolgreich eine Verbindung zur Service Registry hergestellt hat, sehen Sie einen gesunden Status.

PA_2

Veröffentlichen des Dienstes zum Testen

  1. Navigieren Sie zur Dienstseite, klicken Sie auf die Erstellung eines neuen Dienstes und fügen Sie die Route /anything hinzu.

  2. Fahren Sie fort, den Dienst zu veröffentlichen, und wählen Sie den entsprechenden Upstream aus:

PA_3

  1. 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.

Tags: