Sie lesen gerade die Dokumentation zu Apigee Edge.
Apigee X-Dokumentation aufrufen info
Einführung
In diesem Thema wird erläutert, wie Sie Edge Microgateway in einem Kubernetes-Cluster als Sidecar-Proxy ausführen. Sie haben zwei Optionen für die Sidecar-Bereitstellung: manuelle und automatische Einfügung. In diesem Thema werden beide Optionen beschrieben.
Weitere Informationen finden Sie unter Einführung in Edge Microgateway auf Kubernetes.
Hinweis
Führen Sie die unter Voraussetzungen beschriebenen Schritte aus.
Testdienst bereitstellen
Stellen Sie einen einfachen „hello“-Dienst bereit und prüfen Sie die Bereitstellung:
Beispiel bereitstellen
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
Prüfen Sie, ob der Dienst ausgeführt wird. Es kann einige Momente dauern, bis der Pod den Status „Wird ausgeführt“ erreicht:
kubectl get pods --namespace=default
Beispielausgabe:
NAME READY STATUS RESTARTS AGE helloworld-569d6565f9-lwrrv 1/1 Running 0 17mLöschen Sie die Bereitstellung des Testdienstes. Sie installieren sie später neu, nachdem Sie die Sidecar-Einfügung aktiviert haben:
kubectl delete -f samples/helloworld/helloworld.yaml --namespace=default
Manuelle Sidecar-Einfügung verwenden
Von den beiden Optionen zum Einfügen von Sidecar-Dateien ist die manuelle Sidecar-Einfügung der einfachere und unkompliziertere Ansatz. Sie kann mit einem einzigen kubectl-Befehl erfolgen.
Edge Microgateway konfigurieren
Mit dem folgenden Befehl wird Edge Microgateway für Ihre Apigee-Organisation konfiguriert und der Proxy edgemicro-auth wird bereitgestellt.
Führen Sie folgenden Befehl aus:
edgemicro configure -o [org] -e [env] -u [username]
Wobei:
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 myorg -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 Sidecar einfügen
Führen Sie den folgenden Befehl aus, um Edge Microgateway manuell als Sidecar-Proxy in einen Dienst-Pod einzufügen:
kubectl apply -f <(edgemicroctl -org=your_org -env=your_env -key=your_key -sec=your_secret -conf=config_file_path -svc=service_deployment_file)
Dabei gilt:
your_org: Die Apigee-Organisation, die Sie im Befehledgemicro configureangegeben haben.your_env: Die Umgebung, die Sie im Befehledgemicro configureangegeben haben.your_key: Der Schlüssel, der vom Befehledgemicro configurezurückgegeben wurde.your_secret: Das Secret, das vom Befehledgemicro configurezurückgegeben wird.config_file_path: Der Pfad zur Edge Micro-Konfigurationsdatei, die vom Befehledgemicro configurezurückgegeben wird.service_deployment_file: Der Pfad zur Bereitstellungsdatei des Dienstes, dessen Pod den Companion-Sidecar-Dienst erhält. Beispiel:samples/helloworld/helloworld.yaml
Beispiel:
kubectl apply -f <(edgemicroctl -org=myorg -env=test-key=0e3ecea28a64099410594406b30e54439af5265f8 -sec=e3919250bee37c69cb2e5b41170b488e1c1d -conf=/Users/jdoe/.edgemicro/myorg-test-config.yaml -svc=samples/helloworld/helloworld.yaml)
Konfiguration testen
Prüfen Sie die Dienstbereitstellungen:
kubectl get services -n default
Beispielausgabe:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE helloworld NodePort 10.15.254.163 <none> 8081:32401/TCP 56s kubernetes ClusterIP 10.15.240.1 <none> 443/TCP 41mJetzt können Sie die Sidecar-Bereitstellung von Edge Microgateway testen. Eine detaillierte Anleitung finden Sie unter Proxy testen.
Automatische Sidecar-Einfügung verwenden
In den folgenden Schritten konfigurieren Sie die automatische Sidecar-Einfügung für Ihren Kubernetes-Cluster. Bei dieser Einrichtung kann Edge Microgateway als Sidecar-Proxy in Kubernetes eingefügt werden.
Sidecar-Injektor installieren
Installieren Sie die ConfigMap, die die Sidecar-Injektion von Edge Microgateway ermöglicht:
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
Führen Sie das folgende Skript aus, um den Webhook-Dienst zu installieren. Der Webhook-Dienst ist für die automatische Sidecar-Einfügung erforderlich:
./install/kubernetes/webhook-create-signed-cert.sh \ --service edgemicro-sidecar-injector \ --namespace edgemicro-system \ --secret sidecar-injector-certsFügen Sie das CA-Bundle der Webhook-Installationsdatei hinzu. Der Kubernetes-API-Server verwendet diese Datei, um den Webhook aufzurufen:
cat install/kubernetes/edgemicro-sidecar-injector.yaml | \ ./install/kubernetes/webhook-patch-ca-bundle.sh > \ install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yamlInstallieren Sie den Edge Microgateway-Sidecar-Injektor-Webhook:
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
Beispielausgabe:
service "edgemicro-sidecar-injector" created serviceaccount "edgemicro-sidecar-injector-service-account" created deployment "edgemicro-sidecar-injector" created mutatingwebhookconfiguration "edgemicro-sidecar-injector" createdPrüfen Sie, ob der Edge Microgateway-Sidecar-Injektor-Webhook ausgeführt wird:
kubectl -n edgemicro-system get deployment -ledgemicro=sidecar-injector
Beispielausgabe:
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE edgemicro-sidecar-injector 1 1 1 1 12mPrüfen Sie, ob der Pod für die Sidecar-Einfügung in Ihrem Cluster ausgeführt wird. Im Namespace
edgemicro-systemwerden die Systemdienste installiert, darunter der Ingress-Controller, das Standard-HTTP-Backend und der Sidecar-Injector:kubectl get pods -n edgemicro-system
Beispielausgabe:
NAME READY STATUS RESTARTS AGE default-http-backend-55c6c69b88-gfnfd 1/1 Running 0 1h edgemicro-ingress-controller-64444469bf-jhn8b 1/1 Running 3 1h edgemicro-sidecar-injector-7d95698fbf-cq84q 1/1 Running 0 3m
Edge Microgateway konfigurieren und einfügen
Im nächsten Schritt führen Sie ein interaktives Skript aus, um eine Edge Microgateway-Konfiguration zu erstellen, die einem Kubernetes-Namespace zugeordnet ist. Anschließend fügen Sie die Konfiguration in Ihren Kubernetes-Cluster ein.
Führen Sie das folgende interaktive Skript aus und geben Sie die angeforderten Parameter an. Mit dem Befehl wird ein Konfigurationsprofil generiert, das Sie im nächsten Schritt verwenden.
./install/kubernetes/webhook-edgemicro-patch.sh
Informationen zu den Eingabeparametern finden Sie in der Referenz.
Beispieleingaben:
Namespace to deploy application [default]:Drücken Sie die Eingabetaste.
Authenticate with OAuth Token ("n","Y") [N/y]Geben Sie n ein.
Apigee username [required]:Geben Sie Ihren Apigee-Nutzernamen (E-Mail-Adresse) ein. Beispiel:
jdoe@google.com.Apigee password [required]:Geben Sie Ihr Apigee-Passwort ein.
Apigee organization [required]:Geben Sie den Namen Ihrer Apigee-Organisation ein.
Apigee environment [required]:Geben Sie einen Umgebungsnamen für Ihre Organisation ein. Beispiel: „test“.
Virtual Host [default]:Drücken Sie die Eingabetaste.
Is this Private Cloud ("n","y") [N/y]:Geben Sie n ein, wenn Sie die Public Cloud verwenden.
Edgemicro Key. Press Enter to generate:Drücken Sie die Eingabetaste.
Edgemicro Secret. Press Enter to generate:Drücken Sie die Eingabetaste.
Edgemicro org-env-config.yaml. Press Enter to generate:Drücken Sie die Eingabetaste.
Beispielausgabe:
current nodejs version is v6.9.1 current edgemicro version is 2.5.25 config initialized to /Users/jdoe/.edgemicro/default.yaml Configure for Cloud ****************************************************************************************** Config file is Generated in /Users/jdoe/Work/GITHUB/microgateway_2.5.25_Darwin_x86_64/config directory. Please make changes as desired. *****************************************************************************************Do you agree to proceed("n","y") [N/y]:Geben Sie y ein.
Beispielausgabe:
Configuring Microgateway with key:daacf75dd660d160b801c9117fb1ec0935896615479e39dbbae88be81a2d84 secret:a60fd57c1db9f3a06648173fb541cb9c59188d3b6037a76f490ebf7a6584b0 config:~/.edgemicro/jdoe-test-config.yaml ******************************************************************************************************** kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml ********************************************************************************************************
Führen Sie den Befehl aus, der in der letzten Zeile der Ausgabe angegeben ist. Mit diesem
kubectl-Befehl wird das generierte Edge Microgateway-Konfigurationsprofil in Kubernetes eingefügt:kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
Status der Webhook-Einfügung ansehen Sie ist derzeit nicht aktiviert:
kubectl get namespace -L edgemicro-injection
Beispielausgabe:
NAME STATUS AGE EDGEMICRO-INJECTION default Active 1d edgemicro-system Active 1d kube-public Active 1d kube-system Active 1dFühren Sie diesen Befehl aus, um die Webhook-Injektion für den Webhook zu aktivieren:
kubectl label namespace default edgemicro-injection=enabled
Sehen Sie sich den Status der Webhook-Einfügung noch einmal an. Beachten Sie, dass sie jetzt aktiviert ist:
kubectl get namespace -L edgemicro-injection
Beispielausgabe:
NAME STATUS AGE EDGEMICRO-INJECTION default Active 1d enabled edgemicro-system Active 1d kube-public Active 1d kube-system Active 1d
Testdienst bereitstellen
Stellen Sie den Testdienst jetzt noch einmal bereit. Edge Microgateway wird automatisch in den Pod des Dienstes eingefügt.
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
Prüfen Sie, ob Edge Microgateway zusammen mit dem Testdienst in den Pod eingefügt wurde:
kubectl get pods --namespace=default --watch
Beispielausgabe:
NAME READY STATUS RESTARTS AGE
helloworld-6987878fc4-pkw8h 0/2 PodInitializing 0 12s
helloworld-6987878fc4-pkw8h 2/2 Running 0 26s
Wenn sich der Status in Running ändert, drücken Sie ctrl-c, um den Befehl zu beenden.
Jetzt können Sie die automatische Sidecar-Bereitstellung von Edge Microgateway testen. Eine detaillierte Anleitung finden Sie unter Proxy testen.
Proxy testen
Bei Sidecar-Bereitstellungen wird automatisch ein API-Proxy für Ihren Dienst erstellt. Sie müssen keinen „Edge Microgateway-fähigen“ Proxy erstellen.
Ingress-IP-Adresse abrufen
Mit der externen IP-Adresse für den Ingress können Sie den 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 gateway * 35.238.13.54 80 1mKopieren Sie den
EXTERNAL-IP-Wert fü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
Alternativ können Sie diesen Befehl verwenden, um die Einstellung vorzunehmen:
export GATEWAY_IP=$(kubectl describe ing gateway --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.62Rufen Sie den Dienst auf:
curl $GATEWAY_IP
Ausgabe:
{"error":"missing_authorization","error_description":"Missing Authorization header"}Als Nächstes beheben Sie den Fehler wegen fehlender Autorisierung, indem Sie ein API-Produkt und eine Entwickler-App in Edge konfigurieren, damit Sie einen gültigen API-Schlüssel erhalten. Wenn Sie den Schlüssel einem Autorisierungsheader für den API-Aufruf hinzufügen, ist der Aufruf erfolgreich und dieser Fehler wird nicht angezeigt.
Komponenten in Apigee Edge erstellen
Erstellen Sie als Nächstes ein API-Produkt und eine Entwickler-App in Apigee Edge.
API-Produkt erstellen
- Melden Sie sich bei Apigee Edge an.
- Wählen Sie im seitlichen Navigationsmenü Veröffentlichen > API-Produkte aus.
- Klicken Sie auf + API Product. Die Produktseite wird angezeigt.
Füllen Sie die Produktseite so aus: Für Felder, die unten nicht aufgeführt sind, können Sie die Standardwerte verwenden. Speichern Sie erst, wenn Sie dazu aufgefordert werden.
Name hello-world-productAnzeigename Edge Micro hello productUmgebung testKlicken Sie im Bereich „Pfad“ auf + Benutzerdefinierte Ressource.
Fügen Sie den Pfad
/hinzu.Klicken Sie noch einmal auf + Benutzerdefinierte Ressource und fügen Sie den Pfad
/**hinzu.Klicken Sie im Abschnitt „API-Proxys“ auf + API-Proxy und fügen Sie edgemicro-auth hinzu.
Speichern Sie das API-Produkt.
Entwickler-App erstellen
- Wählen Sie im seitlichen Navigationsmenü Apps aus.
- Klicken Sie auf + App. Die Developer App-Detailseite wird angezeigt.
Füllen Sie die Seite „Entwickler-App“ wie unten beschrieben aus. Speichern Sie erst, wenn Sie dazu aufgefordert werden.
Name hello-world-appAnzeigename Edge Micro hello appDeveloper Wählen Sie im Drop-down-Menü einen Entwickler aus. Klicken Sie im Abschnitt „Anmeldedaten“ auf + Produkt und wählen Sie das gerade erstellte
hello-world-productaus.Klicken Sie auf Speichern.
Sie kehren zur Seite mit allen Entwickler-Apps zurück.
Wählen Sie die gerade erstellte App aus:
hello-world-app.Klicken Sie neben dem 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 den Dienst
helloworldsenden.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.
API aufrufen
Nachdem die Konfigurationsänderungen in das Microgateway übernommen wurden, können Sie die folgenden Tests durchführen.
Rufen Sie die API ohne API-Schlüssel auf. Sie erhalten eine Fehlermeldung wie unten dargestellt:
curl $GATEWAY_IP
Erwartete Ausgabe:
{"error":"missing_authorization","error_description":"Missing Authorization header"}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
Beispiel:
curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP
Ausgabe:
Hello worldDie Antwort „Hello World“ wird vom helloworld-Dienst zurückgegeben, der im Pod bereitgestellt wird. Der Aufruf dieses Dienstes wurde zuerst über Edge Microgateway geleitet, wo die Authentifizierung erfolgte. Wenn Sie die Antwort „Hello world“ sehen, haben Sie Edge Microgateway erfolgreich als Sidecar-Proxy im helloworld-Dienst-Pod konfiguriert.
Nächste Schritte
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, finden Sie im Abschnitt Aufgaben.