Bereitstellen eines selbstgehosteten Gateways in Kubernetes mit YAML

GILT FÜR: Entwickler | Premium

In diesem Artikel werden die Schritte für die Bereitstellung der selbstgehosteten Gatewaykomponente von Azure API Management für einen Kubernetes-Cluster beschrieben.

Hinweis

Sie können auch das selbstgehostete Gateway in einem Kubernetes-Cluster mit Azure Arc-Unterstützung als Clustererweiterung bereitstellen.

Voraussetzungen

Bereitstellen in Kubernetes

Tipp

Mit den folgenden Schritte wird das selbstgehostete Gateway in Kubernetes bereitgestellt und die Authentifizierung bei der API Management-Instanz mithilfe eines Gatewayzugriffstokens (Authentifizierungsschlüssel) ermöglicht. Sie können das selbstgehostete Gateway auch in Kubernetes bereitstellen und die Authentifizierung bei der API Management-Instanz mithilfe von Azure AD aktivieren.

  1. Wählen Sie Gateways unter Bereitstellung und Infrastruktur aus.
  2. Wählen Sie die selbstgehostete Gatewayressource aus, die Sie bereitstellen möchten.
  3. Wählen Sie Bereitstellung aus.
  4. Im Textfeld Token wurde auf Grundlage der Standardwerte Ablauf und Geheimer Schlüssel automatisch ein Zugriffstoken für Sie generiert. Wählen Sie bei Bedarf Werte in einem oder beiden Steuerelementen aus, um ein neues Token zu generieren.
  5. Wählen Sie unter Bereitstellungsskripts die Registerkarte Kubernetes aus.
  6. Wählen Sie den Link zur Datei <gateway-name>.yml aus, und laden Sie die YAML-Datei herunter.
  7. Wählen Sie rechts unten im Textfeld Bereitstellen das Symbol Kopieren aus, um die kubectl-Befehle in der Zwischenablage zu speichern.
  8. Wenn Sie Azure Kubernetes Service (AKS) verwenden, führen Sie az aks get-credentials --resource-group <resource-group-name> --name <resource-name> --admin in einer neuen Terminalsitzung aus.
  9. Führen Sie die Befehle aus, um die erforderlichen Kubernetes-Objekte im Standardnamespace zu erstellen, und starten Sie die selbstgehosteten Gatewaypods aus dem Containerimage, das aus der Microsoft-Artefaktregistrierung heruntergeladen wurde.
    • Mit dem ersten Schritt wird ein Kubernetes-Geheimnis erstellt, welches das in Schritt 4 generierte Zugriffstoken enthält. Als Nächstes wird eine Kubernetes-Bereitstellung für das selbstgehostete Gateway erstellt, das eine ConfigMap mit der Konfiguration des Gateways verwendet.

Sicherstellen, dass das Gateway ausgeführt wird

  1. Führen Sie den folgenden Befehl aus, um zu prüfen, ob die Bereitstellung erfolgreich war. Es kann einige Zeit dauern, bis alle Objekte erstellt sind und die Pods initialisiert wurden.

    kubectl get deployments
    

    Die Rückgabe sollte wie folgt lauten:

    NAME             READY   UP-TO-DATE   AVAILABLE   AGE
    <gateway-name>   1/1     1            1           18s
    
  2. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Dienste erfolgreich erstellt wurden. Die IP-Adressen und Ports Ihrer Dienste werden sich unterscheiden.

    kubectl get services
    

    Die Rückgabe sollte wie folgt lauten:

    NAME                                TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
    <gateway-name>-live-traffic         ClusterIP      None            <none>        4290/UDP,4291/UDP   9m1s
    <gateway-name>-instance-discovery   LoadBalancer   10.99.236.168   <pending>     80:31620/TCP,443:30456/TCP   9m1s
    
  3. Kehren Sie zurück zum Azure-Portal, und wählen Sie Übersicht aus.

  4. Vergewissern Sie sich, dass in Status ein grünes Häkchen angezeigt wird, gefolgt von einer Knotenanzahl, die der Anzahl der in der YAML-Datei angegebenen Replikate entspricht. Dieser Status bedeutet, dass die bereitgestellten selbstgehosteten Gatewaypods erfolgreich mit dem API Management-Dienst kommunizieren und einen regelmäßigen „Takt“ (Heartbeat) aufweisen. Screenshot des Status des selbsgehosteten Gateways im Portal.

Tipp

  • Führen Sie den Befehl kubectl logs deployment/<gateway-name> aus, um Protokolle von einem zufällig ausgewählten Pod anzuzeigen, falls es mehrere gibt.
  • Führen Sie kubectl logs -h aus, um eine vollständige Übersicht über alle Befehlsoptionen zu erhalten, wie z. B. Protokolle für einen bestimmten Pod oder Container.

Nächste Schritte