Een zelf-hostende gateway implementeren in Kubernetes met YAML

VAN TOEPASSING OP: Ontwikkelaar | Premium

In dit artikel worden de stappen beschreven voor het implementeren van het zelf-hostende gatewayonderdeel van Azure API Management in een Kubernetes-cluster.

Belangrijk

Ondersteuning voor zelf-hostende gatewayversie 0 en versie 1 van Azure API Management eindigt op 1 oktober 2023, samen met de bijbehorende Configuratie-API v1. Gebruik onze migratiehandleiding voor het gebruik van zelf-hostende gateway v2.0.0 of hoger met configuration-API v2. Meer informatie vindt u in onze documentatie over afschaffing

Notitie

U kunt ook zelf-hostende gateway implementeren in een Kubernetes-cluster met Azure Arc als clusterextensie.

Vereisten

Implementeren naar Kubernetes

Tip

Met de volgende stappen implementeert u de zelf-hostende gateway naar Kubernetes en schakelt u verificatie in voor het API Management-exemplaar met behulp van een gatewaytoegangstoken (verificatiesleutel). U kunt ook de zelf-hostende gateway implementeren in Kubernetes en verificatie inschakelen voor het API Management-exemplaar met behulp van Microsoft Entra-id.

  1. Selecteer Gateways onder Implementatie en infrastructuur.
  2. Selecteer de zelf-hostende gatewayresource die u wilt implementeren.
  3. Selecteer Implementatie.
  4. Er is automatisch een toegangstoken in het tekstvak Token voor u gegenereerd, op basis van de standaardwaarden voor vervaldatum en geheime sleutel . Kies indien nodig waarden in een van beide besturingselementen om een nieuw token te genereren.
  5. Selecteer het tabblad Kubernetes onder Implementatiescripts.
  6. Selecteer de <gatewaynaam>.yml bestandskoppeling en download het YAML-bestand.
  7. Selecteer het kopieerpictogram in de rechterbenedenhoek van het tekstvak Implementeren om de kubectl opdrachten op het klembord op te slaan.
  8. Wanneer u Azure Kubernetes Service (AKS) gebruikt, voert u deze uit az aks get-credentials --resource-group <resource-group-name> --name <resource-name> --admin in een nieuwe terminalsessie.
  9. Voer de opdrachten uit om de benodigde Kubernetes-objecten te maken in de standaardnaamruimte en start zelf-hostende gatewaypods uit de containerinstallatiekopie die u hebt gedownload uit de Microsoft-artefactregister.
    • Met de eerste stap maakt u een Kubernetes-geheim dat het toegangstoken bevat dat is gegenereerd in stap 4. Vervolgens wordt er een Kubernetes-implementatie gemaakt voor de zelf-hostende gateway die gebruikmaakt van een ConfigMap met de configuratie van de gateway.

Controleer of de gateway wordt uitgevoerd

  1. Voer de volgende opdracht uit om te controleren of de implementatie is geslaagd. Het kan even duren voordat alle objecten zijn gemaakt en dat de pods zijn geïnitialiseerd.

    kubectl get deployments
    

    De waarde moet worden geretourneerd

    NAME             READY   UP-TO-DATE   AVAILABLE   AGE
    <gateway-name>   1/1     1            1           18s
    
  2. Voer de volgende opdracht uit om te controleren of de services zijn gemaakt. Uw service-IP-adressen en poorten zijn anders.

    kubectl get services
    

    De waarde moet worden geretourneerd

    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. Ga terug naar Azure Portal en selecteer Overzicht.

  4. Controleer of de status een groen vinkje weergeeft, gevolgd door een aantal knooppunten dat overeenkomt met het aantal replica's dat is opgegeven in het YAML-bestand. Deze status betekent dat de geïmplementeerde zelf-hostende gatewaypods met succes communiceren met de API Management-service en een normale 'heartbeat' hebben. Schermopname van de status van zelf-hostende gateway in de portal.

Tip

  • Voer de kubectl logs deployment/<gateway-name> opdracht uit om logboeken van een willekeurig geselecteerde pod weer te geven als er meer dan één pod is.
  • Uitvoeren kubectl logs -h voor een volledige set opdrachtopties, zoals het weergeven van logboeken voor een specifieke pod of container.

Volgende stappen