Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu
Apigee X. info
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.
Führen Sie folgenden Befehl aus:
edgemicro configure -o [org] -e [env] -u [username]
Dabei gilt:
org: Der Name Ihrer Edge-Organisation (Sie müssen ein Organisationsadministrator sein).env: Eine Umgebung in Ihrer Organisation (z. B. „test“ oder „prod“).username: Die E-Mail-Adresse, die mit Ihrem Apigee-Konto verknüpft ist.
Beispiel
edgemicro configure -o docs -e test -u jdoe@example.com
Die Ausgabe (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
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 Befehledgemicro configureangegeben haben.env- Die Umgebung, die Sie im Befehledgemicro configureangegeben haben.edgemicro-key: Der Schlüssel, der vom Befehledgemicro configurezurückgegeben wurde.edgemicro-secret: Das Secret, das vom Befehledgemicro configurezurückgegeben wurde.file path of org-env-config.yaml: Der Pfad zur Edge Micro-Konfigurationsdatei, die vom Befehledgemicro configurezurü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" createdKopieren Sie den folgenden Code und fügen Sie ihn in das Terminal ein. Mit dem Code wird der Ingress-Controller so eingerichtet, dass externer Zugriff auf den Dienst
edge-microgatewaymöglich ist. Möglicherweise müssen Sie nach dem Einfügen des Befehls in das Terminal die Eingabetaste drücken: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 EOFBei Erfolg wird folgende Ausgabe angezeigt:
ingress "edge-microgateway-ingress" createdDer Ingress-Controller ist jetzt so konfiguriert, dass externer Zugriff auf den Dienst
edge-microgatewaymöglich ist.
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 wird.
Später konfigurieren Sie Edge Microgateway so, dass der Dienst als Ziel aufgerufen wird.
Der Ingress-Controller lässt jedoch externen Zugriff auf den Dienst edge-microgateway zu.
Stellen Sie den Beispieldienst
helloworldbereit. Da der Ingress diesen Dienst nicht kennt, kann er nicht von außerhalb des Clusters aufgerufen werden.kubectl apply -f samples/helloworld/helloworld-service.yaml
Beispielausgabe:
service "helloworld" created deployment "helloworld" createdPrüfen Sie, ob die Bereitstellung erfolgreich war. Beachten Sie, dass es keine externe IP-Adresse für den Dienst
helloworldgibt. In den folgenden Schritten konfigurieren Sie Edge Microgateway so, dass auf die interne IP-Adresse des Dienstes zugegriffen wird.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 für den Dienst als Proxy konfigurieren
Rufen Sie die interne IP-Adresse für den Dienst helloworld ab und fügen Sie sie als Ziel eines „Microgateway-fähigen“ 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
Rufen Sie die interne Cluster-IP-Adresse und den Port für den Dienst
helloworldab:kubectl get services helloworld
Beispielausgabe:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE helloworld NodePort 10.55.254.255 <none> 8081:30329/TCP 3mKopieren Sie die Werte von
CLUSTER-IPundPORT. Im obigen Beispiel sind das10.55.254.255und8081. Die Werte für Ihr System sind anders.
Microgateway-fähigen Proxy in Edge erstellen
- Melden Sie sich in der Edge-UI an.
- Wählen Sie dieselbe Organisation aus, die Sie zuvor beim Konfigurieren von Edge Microgateway angegeben haben.
- Wählen Sie im seitlichen Navigationsmenü Develop > API Proxies aus.
- Klicken Sie auf + Proxy. Der Assistent zum Erstellen eines Proxys wird geöffnet.
- Wählen Sie auf der ersten Seite des Assistenten Reverse-Proxy (wird am häufigsten verwendet) aus.
- Klicken Sie auf Weiter.
Konfigurieren Sie auf der Detailseite des Assistenten Folgendes. Füllen Sie den Assistenten genau wie gezeigt aus. Der Proxyname muss das Präfix
edgemicro_haben.- Proxyname: edgemicro_hello
Proxy-Basispfad: /hello
Vorhandene API:
http://<cluster_ip>:<port>Beispiel: http://10.55.254.255:8081
Klicken Sie auf Weiter.
Wählen Sie auf der Seite „Sicherheit“ des Assistenten Passthrough (none) aus.
Klicken Sie auf Weiter.
Übernehmen Sie auf der Seite „Virtuelle Hosts“ des Assistenten die Standardwerte.
Klicken Sie auf Weiter.
Prüfen Sie auf der Seite „Erstellen“ des Assistenten die Proxy-Einstellungen. Achten Sie darauf, dass die Umgebung test ausgewählt ist.
Klicken Sie auf Erstellen und bereitstellen.
Entwickler erstellen
Sie können einen vorhandenen Entwickler zum Testen verwenden oder einen neuen Entwickler erstellen:
- Klicken Sie im seitlichen Navigationsmenü auf Veröffentlichen > Entwickler.
- Klicken Sie auf + Entwickler.
- Füllen Sie das Dialogfeld aus, um einen neuen Entwickler zu erstellen. Sie können einen beliebigen Entwicklernamen oder eine beliebige E-Mail-Adresse verwenden.
API-Produkt erstellen
Erstellen Sie ein API-Produkt wie unten beschrieben. Sie fügen dem Produkt zwei Proxys hinzu: edgemicro-auth und edgemicro_hello.
Weitere Informationen zu den Konfigurationsoptionen für Produkte finden Sie unter Wissenswertes über die API-Produkt konfiguration.
- Wählen Sie im seitlichen Navigationsmenü Veröffentlichen > API-Produkte aus.
- Klicken Sie auf + API Product. Die Seite „Produktdetails“ wird angezeigt.
Füllen Sie die Seite „Produktdetails“ so aus: Klicken Sie erst auf „Speichern“, wenn Sie dazu aufgefordert werden.
Name hello-world-productAnzeigename Edge Micro hello productUmgebung testZugriff PublicSchlüsselgenehmigungstyp AutomaticKlicken Sie in der unteren Hälfte der Seite auf + Benutzerdefinierte Ressource.
Setzen Sie die Ressource auf
/(ein einzelner Schrägstrich).Wählen Sie + Benutzerdefinierte Ressource noch einmal aus und fügen Sie den Pfad
/**hinzu.Klicken Sie unten auf der Seite auf + API-Proxy.
Wählen Sie den Proxy edgemicro-auth aus.
Klicken Sie noch einmal auf + API-Proxy.
Wählen Sie den Microgateway-fähigen Proxy edgemicro_hello aus.
Klicken Sie auf Speichern.
Entwickler-App erstellen
- Klicken Sie im seitlichen Navigationsmenü auf Veröffentlichen > Apps.
- Klicken Sie auf + App. Die Seite „Entwickler-App-Details“ wird angezeigt.
Füllen Sie die Seite „Entwickler-App“ wie unten beschrieben aus. Klicken Sie erst auf „Speichern“, wenn Sie dazu aufgefordert werden.
Name hello-world-appAnzeigename Edge Micro hello appDeveloper Wählen Sie den von Ihnen erstellten Testentwickler aus. Sie können aber auch einen beliebigen anderen Entwickler auswählen. Klicken Sie im Abschnitt „Anmeldedaten“ auf + Produkt und wählen Sie das von Ihnen erstellte Produkt aus:
hello-world-product.Klicken Sie auf Speichern.
Sie kehren zur Seite mit allen Entwickler-Apps zurück.
Wählen Sie die gerade erstellte App
hello-world-appaus.Klicken Sie neben Consumer-Key auf Anzeigen.
Kopieren Sie den Wert des Consumer-Schlüssels. Dieser Wert ist der API-Schlüssel , mit dem Sie sichere API-Aufrufe an
/hellosenden.Warten Sie ein paar Minuten. Es dauert einige Minuten, bis die Änderungen, die Sie in Apigee Edge vorgenommen haben, mit der im Cluster bereitgestellten Instanz von Edge Microgateway 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.
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 37mKopieren Sie den Wert
ADDRESSfür den Ingress 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
Oder verwenden Sie diesen Befehl, um die Variable festlegen zu lassen:
export GATEWAY_IP=$(kubectl describe ing edge-microgateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
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 Microgateway übernommen 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. Mit dieser IP-Adresse können Sie den Proxy von außerhalb des Kubernetes-Clusters aufrufen. Die
Zuordnung vom Ingress zu Edge Microgateway wurde erstellt, als Sie Edge Microgateway
im Cluster bereitgestellt haben.
Rufen Sie die API ohne API-Schlüssel auf. Sie erhalten eine Fehlermeldung wie unten gezeigt:
curl $GATEWAY_IP:80/hello/
Erwartete Ausgabe:
{"error":"missing_authorization","error_description":"Missing Authorization header"}Wenn diese Meldung angezeigt wird, müssen Sie möglicherweise 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.
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 Testproxys 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 worldWenn Sie die Antwort „Hello world“ sehen, 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 möglicherweise ausführen möchten.