Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. info
Wprowadzenie
Z tego artykułu dowiesz się, jak uruchomić Edge Microgateway w klastrze Kubernetes jako pomocnicze proxy. Wdrażanie kontenera pomocniczego możesz przeprowadzić na 2 sposoby: ręcznie i automatycznie. W tym artykule opisujemy obie te opcje.
Więcej informacji znajdziesz w artykule Wprowadzenie do Edge Microgateway w Kubernetes.
Zanim zaczniesz
Wykonaj czynności opisane w sekcji Wymagania wstępne.
Wdrażanie usługi testowej
Wdróż prostą usługę „hello” i sprawdź wdrożenie:
Wdróż próbkę:
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
Sprawdź, czy usługa jest uruchomiona. Może minąć kilka chwil, zanim pod przejdzie w stan uruchomienia:
kubectl get pods --namespace=default
Przykładowe dane wyjściowe:
NAME READY STATUS RESTARTS AGE helloworld-569d6565f9-lwrrv 1/1 Running 0 17mUsuń wdrożenie usługi testowej. Zainstalujesz go później, po włączeniu wstrzykiwania kontenera dodatkowego:
kubectl delete -f samples/helloworld/helloworld.yaml --namespace=default
Ręczne wstrzykiwanie kontenera pomocniczego
Z 2 opcji wstrzykiwania kontenera dodatkowego ręczne wstrzykiwanie jest prostsze i bardziej bezpośrednie. Można je wykonać za pomocą jednego polecenia kubectl.
Konfigurowanie Edge Microgateway
To polecenie konfiguruje Edge Microgateway dla Twojej organizacji Apigee i wdraża serwer proxy edgemicro-auth.
Uruchom to polecenie:
edgemicro configure -o [org] -e [env] -u [username]
Gdzie:
org: nazwa organizacji Edge (musisz być administratorem organizacji).env: środowisko w Twojej organizacji (np. testowe lub produkcyjne).username: adres e-mail powiązany z Twoim kontem Apigee.
Przykład
edgemicro configure -o myorg -e test -u jdoe@example.com
Dane wyjściowe (przykład poniżej) zostaną zapisane w pliku:
.$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!
Wstrzykiwanie Edge Microgateway jako kontenera pomocniczego
Aby ręcznie wstrzyknąć Edge Microgateway do poda usługi jako pomocnicze proxy, wykonaj to polecenie:
kubectl apply -f <(edgemicroctl -org=your_org -env=your_env -key=your_key -sec=your_secret -conf=config_file_path -svc=service_deployment_file)
gdzie:
your_org– organizacja Apigee określona w poleceniuedgemicro configure.your_env– środowisko określone w poleceniuedgemicro configure.your_key– klucz zwrócony przez polecenieedgemicro configure.your_secret– tajny klucz zwrócony przez polecenieedgemicro configure.config_file_path– ścieżka do pliku konfiguracyjnego Edge Micro zwrócona przez polecenieedgemicro configure.service_deployment_file– ścieżka do pliku wdrożenia usługi, której pod otrzyma dodatkową usługę pomocniczą. Na przykład:samples/helloworld/helloworld.yaml.
Na przykład:
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)
Testowanie konfiguracji
Sprawdź wdrożenia usługi:
kubectl get services -n default
Przykładowe dane wyjściowe:
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 41mMożesz teraz przetestować wdrożenie Edge Microgateway w kontenerze pomocniczym. Szczegółowe instrukcje znajdziesz w artykule Testowanie proxy.
Korzystanie z automatycznego wstrzykiwania kontenera pomocniczego
W kolejnych krokach skonfigurujesz automatyczne wstrzykiwanie kontenera dodatkowego w klastrze Kubernetes. Ta konfiguracja umożliwia wstrzykiwanie Edge Microgateway jako proxy typu sidecar do Kubernetes.
Instalowanie wstrzykiwacza kontenera pomocniczego
Zainstaluj ConfigMap, który umożliwia wstrzykiwanie komponentu dodatkowego Edge Microgateway:
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
Aby zainstalować usługę webhook, wykonaj ten skrypt. Usługa webhooka jest wymagana w przypadku automatycznego wstrzykiwania kontenera dodatkowego:
../install/kubernetes/webhook-create-signed-cert.sh \ --service edgemicro-sidecar-injector \ --namespace edgemicro-system \ --secret sidecar-injector-certsDodaj pakiet urzędu certyfikacji do pliku instalacyjnego webhooka. Serwer API Kubernetes używa tego pliku do wywoływania webhooka:
cat install/kubernetes/edgemicro-sidecar-injector.yaml | \ ./install/kubernetes/webhook-patch-ca-bundle.sh > \ install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yamlZainstaluj webhook wstrzykiwania pomocniczego proxy Edge Microgateway:
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
Przykładowe dane wyjściowe:
service "edgemicro-sidecar-injector" created serviceaccount "edgemicro-sidecar-injector-service-account" created deployment "edgemicro-sidecar-injector" created mutatingwebhookconfiguration "edgemicro-sidecar-injector" createdSprawdź, czy webhook wstrzykiwania komponentu pomocniczego Edge Microgateway jest uruchomiony:
kubectl -n edgemicro-system get deployment -ledgemicro=sidecar-injector
Przykładowe dane wyjściowe:
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE edgemicro-sidecar-injector 1 1 1 1 12mSprawdź, czy w klastrze działa pod wstrzykiwania kontenera dodatkowego. Przestrzeń nazw
edgemicro-systemto miejsce, w którym są instalowane usługi systemowe, w tym kontroler Ingress, domyślny backend HTTP i wstrzykiwacz sidecar:kubectl get pods -n edgemicro-system
Przykładowe dane wyjściowe:
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
Konfigurowanie i wstrzykiwanie Edge Microgateway
W następnym kroku uruchomisz interaktywny skrypt, aby utworzyć konfigurację Edge Microgateway powiązaną z przestrzenią nazw Kubernetes. Następnie wstrzykniesz konfigurację do klastra Kubernetes.
Uruchom ten interaktywny skrypt i podaj wymagane parametry. Polecenie generuje profil konfiguracji, którego użyjesz w następnym kroku.
./install/kubernetes/webhook-edgemicro-patch.sh
Informacje o parametrach wejściowych znajdziesz w materiałach referencyjnych.
Przykładowe dane wejściowe:
Namespace to deploy application [default]:Naciśnij Enter.
Authenticate with OAuth Token ("n","Y") [N/y]Wpisz n.
Apigee username [required]:Wpisz nazwę użytkownika Apigee (adres e-mail). Przykład:
jdoe@google.com.Apigee password [required]:Wpisz hasło do Apigee.
Apigee organization [required]:Wpisz nazwę organizacji Apigee.
Apigee environment [required]:Wpisz nazwę środowiska dla swojej organizacji. Na przykład „test”.
Virtual Host [default]:Naciśnij Enter.
Is this Private Cloud ("n","y") [N/y]:Jeśli korzystasz z chmury publicznej, wpisz n.
Edgemicro Key. Press Enter to generate:Naciśnij Enter.
Edgemicro Secret. Press Enter to generate:Naciśnij Enter.
Edgemicro org-env-config.yaml. Press Enter to generate:Naciśnij Enter.
Przykładowe dane wyjściowe:
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]:Wpisz y.
Przykładowe dane wyjściowe:
Configuring Microgateway with key:daacf75dd660d160b801c9117fb1ec0935896615479e39dbbae88be81a2d84 secret:a60fd57c1db9f3a06648173fb541cb9c59188d3b6037a76f490ebf7a6584b0 config:~/.edgemicro/jdoe-test-config.yaml ******************************************************************************************************** kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml ********************************************************************************************************
Wykonaj polecenie podane w ostatnim wierszu danych wyjściowych. To
kubectlpolecenie wstrzykuje wygenerowany profil konfiguracji Edge Microgateway do Kubernetes:kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
Wyświetl stan wstrzykiwania webhooka. Pamiętaj, że obecnie nie jest ona włączona:
kubectl get namespace -L edgemicro-injection
Przykładowe dane wyjściowe:
NAME STATUS AGE EDGEMICRO-INJECTION default Active 1d edgemicro-system Active 1d kube-public Active 1d kube-system Active 1dAby włączyć wstrzykiwanie webhooka, uruchom to polecenie:
kubectl label namespace default edgemicro-injection=enabled
Ponownie sprawdź stan wstrzykiwania webhooka. Zwróć uwagę, że jest teraz włączona:
kubectl get namespace -L edgemicro-injection
Przykładowe dane wyjściowe:
NAME STATUS AGE EDGEMICRO-INJECTION default Active 1d enabled edgemicro-system Active 1d kube-public Active 1d kube-system Active 1d
Wdróż usługę testową
Teraz ponownie wdróż usługę testową. Edge Microgateway zostanie automatycznie wstrzyknięty do poda usługi.
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
Sprawdź, czy Edge Microgateway został wstrzyknięty do poda wraz z usługą testową:
kubectl get pods --namespace=default --watch
Przykładowe dane wyjściowe:
NAME READY STATUS RESTARTS AGE
helloworld-6987878fc4-pkw8h 0/2 PodInitializing 0 12s
helloworld-6987878fc4-pkw8h 2/2 Running 0 26s
Gdy stan zmieni się na Running, naciśnij ctrl-c, aby zakończyć polecenie.
Możesz teraz przetestować automatyczne wdrożenie Edge Microgateway w kontenerze pomocniczym. Szczegółowe instrukcje znajdziesz w artykule Testowanie proxy.
Testowanie serwera proxy
W przypadku wdrożenia typu sidecar proxy interfejsu API dla Twojej usługi jest tworzone automatycznie. Nie musisz tworzyć serwera proxy „obsługującego Edge Microgateway”.
Pobieranie adresu IP obiektu Ingress
Dzięki zewnętrznemu adresowi IP obiektu Ingress możesz wywoływać usługę spoza klastra.
Uzyskaj zewnętrzny adres IP kontrolera Ingress:
kubectl get ing -o wide
Przykładowe dane wyjściowe:
NAME HOSTS ADDRESS PORTS AGE gateway * 35.238.13.54 80 1mSkopiuj wartość
EXTERNAL-IPdla obiektu Ingress i wyeksportuj ją do zmiennej. Zmienną możesz ustawić ręcznie:export GATEWAY_IP=external_ip
Na przykład:
export GATEWAY_IP=35.238.249.62
Możesz też użyć tego polecenia, aby ustawić go za Ciebie:
export GATEWAY_IP=$(kubectl describe ing gateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
Sprawdź, czy zmienna została wyeksportowana. Na przykład:
echo $GATEWAY_IP
Przykładowe dane wyjściowe:
35.238.249.62Wywołaj usługę:
curl $GATEWAY_IP
Dane wyjściowe:
{"error":"missing_authorization","error_description":"Missing Authorization header"}Następnie rozwiążesz problem z brakiem autoryzacji, konfigurując usługę API i aplikację dewelopera w Edge, aby uzyskać prawidłowy klucz interfejsu API. Gdy dodasz klucz do nagłówka autoryzacji wywołania interfejsu API, wywołanie zakończy się powodzeniem i nie zobaczysz tego błędu.
Tworzenie komponentów w Apigee Edge
Następnie utwórz usługę API i aplikację dewelopera w Apigee Edge.
Tworzenie usługi API
- Zaloguj się w Apigee Edge.
- W menu nawigacyjnym po lewej stronie wybierz Opublikuj > Produkty interfejsu API.
- Kliknij + Produkt API. Wyświetli się strona produktu.
Wypełnij stronę produktu w ten sposób: W przypadku pól, które nie są wymienione poniżej, możesz użyć wartości domyślnych. Nie zapisuj zmian, dopóki nie pojawi się odpowiednia instrukcja.
Nazwa hello-world-productWyświetlana nazwa Edge Micro hello productŚrodowisko testW sekcji Ścieżka kliknij + Zasób niestandardowy.
Dodaj ścieżkę
/.Ponownie kliknij + Zasób niestandardowy i dodaj ścieżkę
/**W sekcji API Proxies (Proxy interfejsów API) kliknij + API Proxy (+ Proxy interfejsu API) i dodaj edgemicro-auth.
Zapisz usługę API.
Tworzenie aplikacji związanej z programistą
- W menu nawigacyjnym po lewej stronie wybierz Aplikacje.
- Kliknij + Aplikacja. Wyświetli się strona z informacjami o aplikacji dewelopera.
Wypełnij stronę aplikacji dewelopera w ten sposób: Nie zapisuj, dopóki nie pojawi się odpowiednia instrukcja.
Nazwa hello-world-appWyświetlana nazwa Edge Micro hello appDla programistów Wybierz dewelopera z menu. W sekcji Dane logowania kliknij + Usługa i wybierz utworzoną usługę
hello-world-product.Kliknij Zapisz.
Wrócisz na stronę z listą wszystkich aplikacji dewelopera.
Wybierz utworzoną aplikację
hello-world-app.Obok pozycji Klucz klienta kliknij Pokaż.
Skopiuj wartość klucza klienta. Ta wartość to klucz interfejsu API, którego będziesz używać do bezpiecznego wywoływania interfejsu API usługi
helloworld.Poczekaj kilka minut. Synchronizacja zmian wprowadzonych w Apigee Edge z instancją Edge Microgateway wdrożoną w klastrze zajmuje kilka minut.
Wywoływanie interfejsu API
Po wprowadzeniu zmian w konfiguracji w mikrobramie możesz przeprowadzić te testy:
wywoływać interfejs API bez klucza interfejsu API. Pojawi się komunikat o błędzie, jak pokazano poniżej:
curl $GATEWAY_IP
Oczekiwane dane wyjściowe:
{"error":"missing_authorization","error_description":"Missing Authorization header"}Aby wywoływać interfejs API, potrzebujesz klucza interfejsu API.
Pobierz klucz klienta z utworzonej aplikacji dewelopera. Ta wartość to klucz API potrzebny do wywołania testowego serwera proxy:
curl -H 'x-api-key:your-edge-api-key' $GATEWAY_IP
Na przykład:
curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP
Dane wyjściowe:
Hello worldOdpowiedź „Hello world” jest zwracana przez usługę helloworld wdrożoną w pode. Wywołanie tej usługi najpierw przeszło przez Edge Microgateway, gdzie przeprowadzono uwierzytelnianie. Jeśli zobaczysz odpowiedź „Hello world”, oznacza to, że udało Ci się skonfigurować Edge Microgateway tak, aby działał jako pomocnicze proxy w podzie usługi helloworld.
Co dalej?
Więcej informacji o dodawaniu wtyczek niestandardowych, skalowaniu wdrożenia, wprowadzaniu zmian w konfiguracji i innych zadaniach znajdziesz w sekcji Zadania.