Edge Microgateway als Dienst bereitstellen

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Einführung

In diesem Thema wird erläutert, wie Sie Edge Microgateway in einem Kubernetes-Cluster als eigenständigen Dienst ausführen.

Weitere Informationen finden Sie unter Edge Microgateway in Kubernetes einbinden – Übersicht.

Hinweis

Führen Sie die unter Voraussetzungen beschriebenen Schritte aus.

Edge Microgateway konfigurieren

Mit dem folgenden Befehl wird Edge Microgateway für Ihre Apigee-Organisation konfiguriert und der Proxy edgemicro-auth bereitgestellt.

  1. Führen Sie folgenden Befehl aus:

    edgemicro configure -o [org] -e [env] -u [username]

    Wobei:

    • org: Name Ihrer Edge-Organisation (Sie müssen ein Organisationsadministrator sein).

    • env: Eine Umgebung in Ihrer Organisation, z. B. „test“ oder „prod“.

    • username: Die mit Ihrem Apigee-Konto verknüpfte E-Mail-Adresse.

    Beispiel

    edgemicro configure -o docs -e test -u jdoe@example.com

    Die Ausgabe (siehe Beispiel unten) wird in der Datei gespeichert:

    $HOME/.edgemicro/org_name-env_name-config.yaml
    .

    current nodejs version is v6.9.1
    current edgemicro version is 2.5.25
    password:
    file doesn't exist, setting up
    Give me a minute or two... this can take a while...
    App edgemicro-auth deployed.
    checking org for existing KVM
    KVM already exists in your org
    configuring host edgemicroservices.apigee.net for region us-west1
    
    saving configuration information to: /Users/jdoe/.edgemicro/myorg-test-config.yaml
    
    vault info:
     -----BEGIN CERTIFICATE-----
    MIICpDCCAYwCCQCV9eBcO9a5WzANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAls
    b2NhbGhvc3QwHhcNMagwODA5MDAzMDEzWhcNMTgwODEwMDAzMDEzWjAUMRIwEAYD
    VQQDDBlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDh
    nAHT7JHX/WvWHRFb8FLm53SPIDld5LyPOUfINdEyhSIEeXoOUKg4EPweJPVSC9Vm
    Hw4ZMtEqWJM/XsQWvLe8ylRJa5wgmzmFCqAsuzs9+rmc9KvJqjpOh2uRTUf7KKfT
    iXL2UEseprcI5g8zNyqKyEf/ecWIwz3AkkPAZebVTsrdDfIDHvkyhhvlAHZAB9kn
    GtqP3N8kOlv4KQto9Gr7GYUGUIDugt7gM1F611+RBS+fYRi32GUAq/UQDkhYL8cp
    oIJiF7UYkk2+9t9CdOCDuIUCvJioHJQd0xvDpkC9f6LvwjwnCwku+4F2Q63+av5I
    mJoZJQPvW5aP53Qkk+kHAgMBAAEwDKYJKoZIhvcNAQELBQADggEBALyUBolXUFN8
    1bf268nR+gS8MOFDTxO1bUz+bKuT/g3K1PuNUJTueT+0L1H2OiZUzazAqwn2sqzN
    lQuvLg6LjxjlNkqTJGiJvGDcYVq45dv7UyxAZxhqxTxhlQ+Yu5R9pbQnzujezHpH
    6gtCoCkSt/QqiJ3YsmsVu5is+HpIJepMt0CyMh5tK9j87hl46QhHklaVfQ3ycMVm
    /wNPR/pjizg1FDUeq4nj/7DBVbMf9net/BDaZLeSW1HJ1vcsCXIcSZfQd4QymGFn
    8ADrND7ydVjwO/s23soPDTy0g4yLIZvky2tpT8d7YahNqSv2n7sXsLxruzcyCoQ4
    w+e3Z3F7IKI=
    -----END CERTIFICATE-----
    
    The following credentials are required to start edge micro
      key: 1a3b2754c7f20614817b86e09895825ecc252d34df6c4be21ae24356f09e6eb4
      secret: 16ad2431de73f07f57a6d44048f08d93b63f783bf1f2ac4221182aa7289c7cef
    
    edgemicro configuration complete!
    

Edge Microgateway als Dienst bereitstellen

  1. Führen Sie den folgenden Befehl aus, um Edge Microgateway als Dienst in Ihrem Kubernetes-Cluster bereitzustellen:

    kubectl apply -f <(edgemicroctl -org=org -env=env -key=edgemicro-key
    -sec=edgemicro-secret -conf=file path of org-env-config.yaml)

    Dabei gilt:

    • org: Die Apigee-Organisation, die Sie im Befehl edgemicro configure angegeben haben.
    • env: Die Umgebung, die Sie im Befehl edgemicro configure angegeben haben.
    • edgemicro-key: Der vom Befehl edgemicro configure zurückgegebene Schlüssel.
    • edgemicro-secret: vom Befehl edgemicro configure zurückgegebenes Secret.
    • file path of org-env-config.yaml: Der Pfad zur Edge Micro-Konfigurationsdatei, die vom Befehl edgemicro configure zurückgegeben wurde.

    Beispiel:

    kubectl apply -f <(edgemicroctl -org=jdoe -env=test -key=989cce9d41cac94e72626d906562a1d76a19445f8901b3508858bb064988eccb -sec=ec92b793178de7b7e88e346f55a951e3fdae05e700e3ddea7d63977826379784 -conf=/Users/jdoe/.edgemicro/jdoe-test-config.yaml)

    Beispielausgabe:

    config/myorg-test-config.yaml)
    service "edge-microgateway" created
    deployment "edge-microgateway" created
    secret "mgwsecret" created
    
  2. Kopieren Sie den folgenden Code und fügen Sie ihn in Ihr Terminal ein. Mit dem Code wird der Ingress-Controller so eingerichtet, dass der externe Zugriff auf den Dienst edge-microgateway zugelassen wird. Möglicherweise müssen Sie die Eingabetaste drücken, nachdem Sie den Befehl in Ihr Terminal eingefügt haben:

    cat <<EOF | kubectl apply -f -
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: edge-microgateway-ingress
      annotations:
        kubernetes.io/ingress.class: "nginx"
    spec:
      rules:
      - http:
          paths:
          - path: /
            backend:
              serviceName: edge-microgateway
              servicePort: 8000
    EOF
    

    Bei Erfolg wird folgende Ausgabe angezeigt:

    ingress "edge-microgateway-ingress" created
    

    Der Ingress-Controller ist jetzt so konfiguriert, dass der externe Zugriff auf den Dienst edge-microgateway zugelassen wird.

Testdienst bereitstellen

Mit den folgenden Schritten wird ein einfacher Testdienst in Ihrem Cluster bereitgestellt. Der Ingress-Controller lässt nicht zu, dass der Dienst von außerhalb des Clusters aufgerufen werden kann. Später konfigurieren Sie Edge Microgateway, um den Dienst als Ziel aufzurufen. Der Ingress-Controller lässt den externen Zugriff auf den edge-microgateway-Dienst zu.

  1. Stellen Sie den Beispieldienst helloworld bereit. Da das Ingress diesen Dienst nicht kennt, kann der Dienst nicht von außerhalb des Clusters aufgerufen werden.

    kubectl apply -f samples/helloworld/helloworld-service.yaml

    Beispielausgabe:

    service "helloworld" created deployment "helloworld" created
    
  2. Prüfen Sie, ob die Bereitstellung erfolgreich war. Für den Dienst helloworld gibt es keine externe IP-Adresse. In den folgenden Schritten konfigurieren Sie Edge Microgateway für den Zugriff auf die interne IP-Adresse des Dienstes.

    kubectl get services -n default

    Beispielausgabe:

    NAME                TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    edge-microgateway   NodePort    10.35.247.222   <none>        8000:32000/TCP   12m
    helloworld          NodePort    10.35.245.103   <none>        8081:30294/TCP   47s
    kubernetes          ClusterIP   10.35.240.1     <none>        443/TCP          47m
    

Edge Microgateway als Proxy für den Dienst konfigurieren

Rufen Sie die interne IP-Adresse für den Dienst helloworld ab und fügen Sie sie als Ziel eines "Microgateway-aware"-Proxys hinzu. Das Erstellen eines "Microgateway-fähigen" Proxys ist eine Standardanforderung für Edge Microgateway.

Weitere Informationen finden Sie unter Wissenswertes über Microgateway-fähige Proxys.

Interne IP-Adresse für den Testdienst abrufen

  1. Rufen Sie die interne Cluster-IP-Adresse und den internen Cluster-Port für den Dienst helloworld ab:

    kubectl get services helloworld

    Beispielausgabe:

    NAME         TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    helloworld   NodePort   10.55.254.255   <none>        8081:30329/TCP   3m
    
  2. Kopieren Sie die Werte von CLUSTER-IP und PORT. Im obigen Beispiel sind diese Werte beispielsweise 10.55.254.255 und 8081. Die Werte für Ihr System werden unterschiedlich sein.

Microgateway-fähigen Proxy in Edge erstellen

  1. Melden Sie sich bei der Edge-Benutzeroberfläche an.
  2. Wählen Sie die Organisation aus, die Sie zuvor bei der Konfiguration von Edge Microgateway angegeben haben.
  3. Wählen Sie im seitlichen Navigationsmenü Develop > API Proxies aus.
  4. Klicken Sie auf + Proxy. Der Assistent zum Erstellen eines Proxys wird geöffnet.
  5. Wählen Sie auf der ersten Seite des Assistenten die Option Umgekehrter Proxy (am häufigsten verwendet) aus.
  6. Klicken Sie auf Weiter.
  7. Konfigurieren Sie im Assistenten auf der Seite „Details“ die folgenden Einstellungen. Achten Sie darauf, dass Sie den Assistenten wie hier beschrieben ausfüllen. Achten Sie darauf, dass der Proxyname das Präfix edgemicro_ hat.

    1. Proxy-Name: edgemicro_hello
    2. Proxy-Basispfad: /hello

    3. Vorhandene API: http://<cluster_ip>:<port>

      Beispiel: http://10.55.254.255:8081

  8. Klicken Sie auf Weiter.

  9. Wählen Sie auf der Seite „Sicherheit“ des Assistenten die Option Pass through (none) (Pass durch (keine)) aus.

  10. Klicken Sie auf Weiter.

  11. Übernehmen Sie auf der Seite „Virtuelle Hosts“ des Assistenten die Standardwerte.

  12. Klicken Sie auf Weiter.

  13. Überprüfen Sie auf der Build-Seite des Assistenten Ihre Proxy-Einstellungen. Achten Sie darauf, dass die test-Umgebung ausgewählt ist.

  14. Klicken Sie auf Build and Deploy (Erstellen und bereitstellen).

Entwickler erstellen

Sie können einen vorhandenen Entwickler zum Testen verwenden oder einen neuen Entwickler erstellen:

  1. Klicken Sie im seitlichen Navigationsmenü auf Veröffentlichen > Entwickler.
  2. Klicken Sie auf + Entwickler.
  3. Füllen Sie das Dialogfeld aus, um einen neuen Entwickler zu erstellen. Sie können einen beliebigen Entwicklernamen bzw. eine beliebige E-Mail-Adresse verwenden.

API-Produkt erstellen

Erstellen Sie ein API-Produkt wie unten beschrieben. Fügen Sie dem Produkt zwei Proxys hinzu: edgemicro-auth und edgemicro_hello.

Weitere Informationen zu Produktkonfigurationsoptionen finden Sie unter Wissenswertes zur API-Produktkonfiguration.

  1. Wählen Sie im seitlichen Navigationsmenü Veröffentlichen > API-Produkte aus.
  2. Klicken Sie auf + API Product. Die Seite „Produktdetails“ wird angezeigt.
  3. Füllen Sie die Seite „Produktdetails“ so aus. Klicken Sie erst auf „Speichern“, wenn Sie dazu aufgefordert werden.

    Name hello-world-product
    Display Name Edge Micro hello product
    Environment test
    Access Public
    Schlüsselgenehmigungstyp Automatic
  4. Klicken Sie in der unteren Hälfte der Seite auf + Benutzerdefinierte Ressource.

  5. Legen Sie die Ressource auf / (ein einfacher Schrägstrich) fest.

  6. Wählen Sie noch einmal + Benutzerdefinierte Ressource aus und fügen Sie den Pfad /** hinzu.

  7. Klicken Sie unten auf der Seite auf + API-Proxy.

  8. Wählen Sie den Proxy mit dem Namen edgemicro-auth aus.

  9. Klicken Sie noch einmal auf + API-Proxy.

  10. Wählen Sie den Microgateway-fähigen Proxy namens edgemicro_hello aus.

  11. Klicken Sie auf Speichern.

Entwickler-App erstellen

  1. Klicken Sie im seitlichen Navigationsmenü auf Veröffentlichen > Apps.
  2. Klicken Sie auf + App. Die Seite mit den Entwickler-App-Details wird angezeigt.
  3. Füllen Sie die Seite „Entwickler-App“ wie unten beschrieben aus. Speichern Sie sie erst, wenn Sie dazu aufgefordert werden.

    Name hello-world-app
    Display Name Edge Micro hello app
    Developer Wählen Sie den Testentwickler aus, den Sie erstellt haben. Ansonsten steht es jedem Entwickler bereit.
  4. Klicken Sie im Abschnitt „Anmeldedaten“ auf + Produkt und wählen Sie das von Ihnen erstellte Produkt aus: hello-world-product.

  5. Klicken Sie auf Speichern.

  6. Du bist wieder auf der Seite, auf der alle Entwickler-Apps aufgelistet sind.

  7. Wählen Sie die eben erstellte App hello-world-app aus.

  8. Klicken Sie neben Consumer Key (Consumer-Key) auf Show (Anzeigen).

  9. Kopieren Sie den Wert des Consumer-Schlüssels. Dieser Wert ist der API-Schlüssel, mit dem Sie sichere API-Aufrufe an /hello senden.

  10. Warten Sie ein paar Minuten. Es dauert einige Minuten, bis die Änderungen, die Sie in Apigee Edge vorgenommen haben, mit der im Cluster bereitgestellten Edge Microgateway-Instanz synchronisiert werden.

Proxy testen

Ingress-IP-Adresse abrufen

Mit der externen IP-Adresse für den Ingress können Sie den Edge Microgateway-Dienst von außerhalb des Clusters aufrufen.

  1. Rufen Sie die externe IP-Adresse des Ingress-Controllers ab:

    kubectl get ing -o wide

    Beispielausgabe:

    NAME                        HOSTS     ADDRESS          PORTS     AGE
    edge-microgateway-ingress   *         35.238.249.62    80        37m
    
  2. Kopieren Sie den Wert ADDRESS für das Ingress-Objekt und exportieren Sie ihn in eine Variable. Sie können die Variable manuell festlegen:

    export GATEWAY_IP=external_ip

    Beispiel:

    export GATEWAY_IP=35.238.249.62

    Alternativ können Sie den folgenden Befehl verwenden, um sie für Sie festzulegen:

    export GATEWAY_IP=$(kubectl describe ing edge-microgateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
  3. Prüfen Sie, ob die Variable exportiert wurde. Beispiel:

    echo $GATEWAY_IP

    Beispielausgabe:

    35.238.249.62
    

API aufrufen

Nachdem die Konfigurationsänderungen in das Mikrogateway geladen wurden, können Sie versuchen, die API aufzurufen. Verwenden Sie die IP-Adresse des Ingress-Controllers, die Sie in der Variablen GATEWAY_IP gespeichert haben, um die API aufzurufen, da Sie mit dieser IP-Adresse den Proxy von außerhalb des Kubernetes-Clusters aufrufen können. Die Zuordnung vom Ingress zu Edge Microgateway wurde erstellt, als Sie im Cluster Edge Microgateway bereitgestellt haben.

  1. Rufen Sie die API ohne API-Schlüssel auf. Sie erhalten dann eine Fehlermeldung wie die folgende:

    curl $GATEWAY_IP:80/hello/

    Erwartete Ausgabe:

    {"error":"missing_authorization","error_description":"Missing Authorization
    header"}
    

    Wenn diese Meldung angezeigt wird, müssen Sie eventuell noch etwas warten, bis die Synchronisierung abgeschlossen ist:

    {"message":"no match found for /hello/","status":404}
    

    Für erfolgreiche API-Aufrufe benötigen Sie den API-Schlüssel.

  2. Rufen Sie den Consumer-Key aus der von Ihnen erstellten Entwickler-App ab. Dieser Wert ist der API-Schlüssel, den Sie zum Aufrufen des Test-Proxys benötigen:

    curl -H 'x-api-key:your-edge-api-key' $GATEWAY_IP:80/hello/

    Beispiel:

    curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP:80/hello/

    Ausgabe:

    Hello world
    

    Wenn die Antwort „Hello World“ angezeigt wird, haben Sie Edge Microgateway erfolgreich so konfiguriert, dass der Dienst helloworld im Kubernetes-Cluster aufgerufen wird.

Nächste Schritte

Im Abschnitt Aufgaben finden Sie Informationen zum Hinzufügen benutzerdefinierter Plug-ins, zum Skalieren der Bereitstellung, zum Vornehmen von Konfigurationsänderungen und zu anderen Aufgaben, die Sie ausführen können.