Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Wprowadzenie
W tym artykule wyjaśniamy, jak uruchomić Edge Microgateway w klastrze Kubernetes jako pomocniczy serwer proxy. Dostępne są 2 opcje wdrażania pomocniczego: ręczne i automatyczne wstrzyknięcie kodu. W tym temacie opisano obie 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óż proste polecenie „hello” i sprawdź wdrożenie:
Wdróż przykład:
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
Sprawdź, czy usługa jest uruchomiona. Zaczekaj chwilę, zanim pod uruchamia się do stanu uruchomienia:
kubectl get pods --namespace=default
Przykładowe dane wyjściowe:
NAME READY STATUS RESTARTS AGE helloworld-569d6565f9-lwrrv 1/1 Running 0 17m
Usuń wdrożenie usługi testowej. Zainstalujesz ją ponownie później, gdy włączysz wstrzykiwanie przez aplikację pomocniczą:
kubectl delete -f samples/helloworld/helloworld.yaml --namespace=default
Korzystanie z ręcznego wstrzykiwania danych pomocniczych
Spośród dwóch opcji wstrzykiwania danych z boku
i można to zrobić za pomocą jednego polecenia kubectl
.
Konfigurowanie Edge Microgateway
Poniższe 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 Twojej 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) są zapisywane 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!
Wstrzyknij Edge Microgateway jako pomoc pomocniczy
Aby ręcznie wstrzyknąć Edge Microgateway do poda usługi jako pomocniczy serwer 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 podane w poleceniuedgemicro configure
.your_key
– klucz zwrócony z poleceniaedgemicro configure
.your_secret
– obiekt tajny zwrócony z poleceniaedgemicro configure
.config_file_path
– ścieżka do pliku konfiguracji Edge Micro zwrócona z poleceniaedgemicro configure
.service_deployment_file
– ścieżka do pliku wdrożenia usługi, której pod uzyskać pomoc towarzyszącą. 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ług:
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 41m
Teraz możesz przetestować wdrożenie pomocnicze Edge Microgateway. Otwórz Przetestuj serwer proxy, aby wyświetlić szczegółowe instrukcje.
Korzystanie z automatycznego wstrzykiwania danych do aplikacji pomocniczej
W kolejnych krokach skonfigurujesz automatyczne wstrzykiwanie plików pomocniczych dla Klaster Kubernetes. Ta konfiguracja umożliwia wstrzykiwanie Edge Microgateway jako pliku pomocniczego do Kubernetes.
Inst. wtryskiwacza bocznego
Instalowanie obiektu ConfigMap który umożliwia wstrzykiwanie kodu jako aplikacji pomocniczej w Edge Microgateway:
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
Uruchom poniższy skrypt, aby zainstalować usługę webhooka. Usługa webhooka jest wymagana dla automatyczne wstrzykiwanie danych pomocniczych:
./install/kubernetes/webhook-create-signed-cert.sh \ --service edgemicro-sidecar-injector \ --namespace edgemicro-system \ --secret sidecar-injector-certs
Dodaj pakiet urzędów certyfikacji do pliku instalacyjnego webhooka. Kubernetes api-server używa tego pliku do wywołania webhooka:
cat install/kubernetes/edgemicro-sidecar-injector.yaml | \ ./install/kubernetes/webhook-patch-ca-bundle.sh > \ install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
Zainstaluj webhooka webhooka iniektora pomocniczego 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" created
Sprawdź, czy webhook wstrzykiwacza tymczasowego wstrzykiwania 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 12m
Sprawdź, czy w klastrze działa pod wykonujący wstrzykiwanie aplikacji pomocniczych. Przestrzeń nazw
edgemicro-system
to miejsce, w którym są zainstalowane usługi systemowe, w tym Kontroler ruchu przychodzącego, domyślny backend HTTP i instruktor pomocniczy: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ć Edge Microgateway konfigurację powiązaną z przestrzenią nazw Kubernetes. Następnie wstrzykujesz kod do klastra Kubernetes.
Uruchom następujący interaktywny skrypt i podaj wymagane parametry. wygeneruje profil konfiguracji, którego użyjesz w następnym kroku.
./install/kubernetes/webhook-edgemicro-patch.sh
Informacje o parametrach wejściowych znajdziesz w dokumentacji.
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 swoją nazwę użytkownika (adres e-mail) Apigee. Na przykład:
jdoe@google.com
.Apigee password [required]:
Wpisz hasło Apigee.
Apigee organization [required]:
Wpisz nazwę organizacji Apigee.
Apigee environment [required]:
Wpisz nazwę środowiska organizacji. Na przykład „test”.
Virtual Host [default]:
Naciśnij Enter.
Is this Private Cloud ("n","y") [N/y]:
Jeśli korzystasz z Public Cloud, 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 polecenie
kubectl
wstrzykiwa wygenerowany profil konfiguracji Edge Microgateway w Kubernetes:kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
Wyświetl stan wstrzykiwania webhooka. Uwaga: ta funkcja nie jest obecnie 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 1d
Uruchom to polecenie, aby włączyć wstrzykiwanie webhooka:
kubectl label namespace default edgemicro-injection=enabled
Ponownie wyświetl stan wstrzykiwania webhooka. Pamiętaj, że teraz jest 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
Wdrażanie usługi testowej
Teraz wdróż ponownie usługę testową. Edge Microgateway zostanie wstrzyknięty automatycznie. do poda usługi.
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
Sprawdź, czy Edge Microgateway został wstrzyknięty do poda podczas testu usługa:
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 zamknąć polecenie.
Możesz teraz przetestować automatyczne wdrożenie pomocniczego Edge Microgateway. Otwórz Przetestuj serwer proxy, aby wyświetlić szczegółowe instrukcje.
Testowanie serwera proxy
W przypadku wdrożenia pomocniczego automatycznie tworzony jest serwer proxy interfejsu API dla Twojej usługi. Ty nie muszą tworzyć instancji „Edge Microgateway-aware” serwera proxy.
Uzyskiwanie adresu IP obiektu Ingress
Za pomocą zewnętrznego adresu IP obiektu Ingress możesz wywołać usługę spoza klastra.
Uzyskaj zewnętrzny adres IP kontrolera ruchu przychodzącego:
kubectl get ing -o wide
Przykładowe dane wyjściowe:
NAME HOSTS ADDRESS PORTS AGE gateway * 35.238.13.54 80 1m
Skopiuj wartość
EXTERNAL-IP
obiektu Ingress i wyeksportuj ją do zmiennej. Ty możesz ręcznie ustawić zmienną:export GATEWAY_IP=external_ip
Na przykład:
export GATEWAY_IP=35.238.249.62
Możesz też użyć tego polecenia, aby ustawić je automatycznie:
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.62
Zadzwoń do usługi:
curl $GATEWAY_IP
Dane wyjściowe:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
Następnie rozwiąż brakujący błąd autoryzacji, konfigurując usługę API i aplikację dla deweloperów na Edge, aby uzyskać prawidłowy klucz interfejsu API. Po dodaniu klucza do autoryzacji dla wywołania interfejsu API, wywołanie zakończy się sukcesem i nie zostanie wyświetlony ten komunikat o błędzie.
Tworzenie komponentów w Apigee Edge
Następnie utwórz w Apigee Edge usługę API i aplikację deweloperską.
Tworzenie usługi API
- Zaloguj się w Apigee Edge.
- Kliknij Opublikuj > Usługi API w bocznym menu nawigacyjnym.
- Kliknij + Usługa API. Pojawi się strona produktu.
Wypełnij stronę produktu w następujący sposób. W przypadku pól, których nie wymieniono poniżej, mogą używać wartości domyślnych. Nie zapisuj karty, dopóki nie pojawi się taka prośba.
Nazwa hello-world-product
Wyświetlana nazwa Edge Micro hello product
Środowisko test
W sekcji Ścieżka kliknij + Zasób niestandardowy.
Dodaj ścieżkę
/
.Ponownie kliknij + Zasób niestandardowy i dodaj ścieżkę
/**
.W sekcji Serwery proxy interfejsów API kliknij + Serwer proxy interfejsu API i dodaj edgemicro-auth.
Zapisz usługę API.
Tworzenie aplikacji związanej z programistą
- Kliknij Aplikacje w bocznym menu nawigacyjnym.
- Kliknij + Aplikacja. Pojawi się strona Szczegóły aplikacji dewelopera.
Wypełnij informacje na stronie dewelopera aplikacji w następujący sposób. Nie zapisuj, dopóki nie pojawi się polecenie to zrobić.
Nazwa hello-world-app
Wyświetlana nazwa Edge Micro hello app
Deweloper Wybierz programistę z menu. W sekcji Dane logowania kliknij + Usługa i wybierz
hello-world-product
właśnie utworzony.Kliknij Zapisz.
Jesteś z powrotem na stronie z listą wszystkich aplikacji dewelopera.
Wybierz nowo utworzoną aplikację
hello-world-app
.Kliknij Pokaż obok Klucz klienta.
Skopiuj wartość klucza klienta. Ta wartość jest parametrem Klucz interfejsu API, którego będziesz używać do bezpiecznych wywołań interfejsu API usługę
helloworld
.Odczekaj kilka minut. Zmiany wprowadzone w Apigee mogą pojawić się w ciągu kilku minut Krawędź do synchronizacji z instancją Edge Microgateway wdrożoną w klastra.
Wywoływanie interfejsu API
Po przeniesieniu zmian konfiguracji do mikrobramy możesz Wykonaj te testy.
Wywoływanie interfejsu API bez klucza interfejsu API. Pojawi się następujący komunikat o błędzie poniżej:
curl $GATEWAY_IP
Oczekiwane dane wyjściowe:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
Aby wykonywać udane wywołania interfejsu API, potrzebujesz klucza interfejsu API.
Uzyskaj klucz klienta z utworzonej aplikacji dewelopera. Ta wartość jest parametrem Klucz interfejsu 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 world
„Hello world” odpowiedź jest zwracana przez wdrożoną usługę helloworld do poda. Wywołanie tej usługi najpierw przeszło przez Edge Microgateway, w którym przeprowadzono uwierzytelnianie. Jeśli zobaczysz komunikat „Hello world” oznacza to, że udało Ci się skonfigurować Edge Microgateway, jako pomocniczy serwer proxy w podzie usługi helloworld.
Co dalej?
Więcej informacji znajdziesz w sekcji Lista zadań dodawania niestandardowych wtyczek, skalowania wdrożenia, wprowadzania zmian w konfiguracji inne zadania, które warto wykonać.