Wdrażanie Edge Microgateway jako usługi

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Wstęp

W tym temacie dowiesz się, jak uruchomić Edge Microgateway w klastrze Kubernetes jako samodzielną usługę.

Więcej informacji znajdziesz w artykule o integrowaniu Edge Microgateway z Kubernetes.

Zanim zaczniesz

Wykonaj czynności opisane w artykule Wymagania wstępne.

Skonfiguruj Edge Microgateway

Poniższe polecenie konfiguruje Edge Microgateway dla Twojej organizacji Apigee i wdraża serwer proxy edgemicro-auth.

  1. 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 docs -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!
    

Wdrażanie Edge Microgateway jako usługi

  1. Wykonaj to polecenie, aby wdrożyć Edge Microgateway jako usługę w klastrze Kubernetes:

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

    gdzie:

    • org – organizacja Apigee podana w poleceniu edgemicro configure.
    • env – środowisko określone w poleceniu edgemicro configure.
    • edgemicro-key – klucz zwrócony z polecenia edgemicro configure.
    • edgemicro-secret – obiekt tajny zwrócony przez polecenie edgemicro configure.
    • file path of org-env-config.yaml – ścieżka do pliku konfiguracji Edge Micro zwróconego przez polecenie edgemicro configure.

    Na przykład:

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

    Przykładowe dane wyjściowe:

    config/myorg-test-config.yaml)
    service "edge-microgateway" created
    deployment "edge-microgateway" created
    secret "mgwsecret" created
    
  2. Skopiuj ten kod i wklej go do terminala. Kod konfiguruje kontroler ruchu przychodzącego w taki sposób, aby zezwolić na zewnętrzny dostęp do usługi edge-microgateway. Po wklejeniu polecenia w terminalu może być konieczne naciśnięcie Entera:

    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
    

    Jeśli operacja się uda, zobaczysz takie wyniki:

    ingress "edge-microgateway-ingress" created
    

    Kontroler ruchu przychodzącego jest teraz skonfigurowany tak, aby zezwalać na dostęp z zewnątrz do usługi edge-microgateway.

Wdrażanie usługi testowej

Wykonaj poniższe czynności, aby wdrożyć w klastrze prostą usługę testową. Kontroler ruchu przychodzącego nie zezwala na wywoływanie usługi spoza klastra. Później skonfigurujesz Edge Microgateway tak, aby wywoływała usługę jako jej środowisko docelowe. Kontroler ruchu przychodzącego zezwala na zewnętrzny dostęp do usługi edge-microgateway.

  1. wdrożyć przykładową usługę helloworld, Ponieważ obiekt Ingress nie wie o tej usłudze, nie można jej wywołać spoza klastra.

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

    Przykładowe dane wyjściowe:

    service "helloworld" created deployment "helloworld" created
    
  2. Sprawdź, czy wdrożenie się udało. Zwróć uwagę, że usługa helloworld nie ma zewnętrznego adresu IP. W następujących krokach skonfigurujesz Edge Microgateway tak, aby uzyskać dostęp do wewnętrznego adresu IP usługi.

    kubectl get services -n default

    Przykładowe dane wyjściowe:

    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
    

Skonfiguruj Edge Microgateway jako serwer proxy usługi

Uzyskaj wewnętrzny adres IP usługi helloworld i dodaj go jako miejsce docelowe serwera proxy „microgateway-aware”. Utworzenie serwera proxy „aware-aware” jest standardowym wymaganiem Edge Microgateway.

Zobacz też Co musisz wiedzieć o serwerach proxy obsługujących Microgateway.

Uzyskiwanie wewnętrznego adresu IP usługi testowej

  1. Uzyskaj wewnętrzny adres IP klastra i port dla usługi helloworld:

    kubectl get services helloworld

    Przykładowe dane wyjściowe:

    NAME         TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    helloworld   NodePort   10.55.254.255   <none>        8081:30329/TCP   3m
    
  2. Skopiuj wartości pól CLUSTER-IP i PORT. W przykładzie powyżej te wartości to: 10.55.254.255 i 8081. Wartości w Twoim systemie będą różne.

Tworzenie serwera proxy rozpoznającego mikrobramę w Edge

  1. Zaloguj się w interfejsie Edge.
  2. Wybierz tę samą organizację, która została podana podczas konfigurowania Edge Microgateway.
  3. W bocznym menu nawigacyjnym wybierz Programowanie > Proxies API.
  4. Kliknij + Serwer proxy. Otworzy się kreator tworzenia serwera proxy.
  5. Na pierwszej stronie kreatora wybierz Odwrotny serwer proxy (najczęstszy).
  6. Kliknij Dalej.
  7. Na stronie Szczegóły kreatora wykonaj następujące czynności: Wpisz tekst w kreatorze dokładnie w podany niżej sposób. Upewnij się, że nazwa serwera proxy ma prefiks edgemicro_.

    1. Nazwa serwera proxy: edgemicro_hello
    2. Ścieżka podstawowa serwera proxy: /hello

    3. Istniejący interfejs API: http://<cluster_ip>:<port>

      Na przykład: http://10.55.254.255:8081

  8. Kliknij Dalej.

  9. Na stronie Zabezpieczenia kreatora wybierz Przekazywany (brak).

  10. Kliknij Dalej.

  11. Na stronie Hosty wirtualne w kreatorze zaakceptuj wartości domyślne.

  12. Kliknij Dalej.

  13. Na stronie kompilacji w kreatorze sprawdź ustawienia serwera proxy. Wybierz środowisko testowe.

  14. Kliknij Skompiluj i wdróż.

Tworzenie programisty

Możesz w tym celu skorzystać z dotychczasowego dewelopera lub utworzyć nowego w ten sposób:

  1. W bocznym menu nawigacyjnym wybierz Opublikuj > Programiści.
  2. Kliknij + Deweloper.
  3. Wypełnij okno, aby utworzyć nowego dewelopera. Możesz użyć dowolnej nazwy/adresu e-mail dewelopera.

Tworzenie usługi API

Utwórz usługę API w sposób opisany poniżej. Do usługi dodasz 2 serwery proxy: edgemicro-auth i edgemicro_hello.

Więcej informacji o opcjach konfiguracji usług znajdziesz w artykule Co musisz wiedzieć o konfiguracji usługi API.

  1. W bocznym menu nawigacyjnym wybierz Opublikuj > Usługi API.
  2. Kliknij + Usługa API. Pojawi się strona Szczegóły produktu.
  3. Wypełnij stronę Szczegóły produktu w następujący sposób. Nie klikaj Zapisz, dopóki nie pojawi się taka instrukcja.

    Nazwa hello-world-product
    Wyświetlana nazwa Edge Micro hello product
    Środowisko test
    Dostęp Public
    Typ zatwierdzenia Automatic
  4. W dolnej części strony kliknij + Zasób niestandardowy.

  5. Ustaw zasób jako / (pojedynczy ukośnik).

  6. Ponownie wybierz + Zasób niestandardowy i dodaj ścieżkę /**.

  7. W dolnej części strony kliknij + Serwer proxy interfejsu API.

  8. Wybierz serwer proxy o nazwie edgemicro-auth.

  9. Ponownie kliknij + Serwer proxy API.

  10. Wybierz serwer proxy identyfikujący mikrobramę o nazwie edgemicro_hello.

  11. Kliknij Zapisz.

Tworzenie aplikacji związanej z programistą

  1. W bocznym menu nawigacyjnym wybierz Opublikuj > Aplikacje.
  2. Kliknij + Aplikacja. Pojawi się strona Szczegóły aplikacji dewelopera.
  3. Wypełnij stronę aplikacji dewelopera w ten sposób. Zapisuj, dopóki nie pojawi się taka instrukcja.

    Nazwa hello-world-app
    Wyświetlana nazwa Edge Micro hello app
    Deweloper Wybierz utworzonego przez siebie programistę testowe. Możesz też użyć dowolnego dewelopera.
  4. W sekcji Dane logowania kliknij + Usługa i wybierz utworzoną przez siebie usługę: hello-world-product.

  5. Kliknij Zapisz.

  6. Jesteś z powrotem na stronie z listą wszystkich aplikacji dla deweloperów.

  7. Wybierz utworzoną przed chwilą aplikację hello-world-app.

  8. Kliknij Pokaż obok Klucz klienta.

  9. Skopiuj wartość klucza klienta. Ta wartość to klucz interfejsu API, którego będziesz używać do wykonywania bezpiecznych wywołań interfejsu API w /hello.

  10. Odczekaj kilka minut. Synchronizacja zmian wprowadzonych w Apigee Edge z instancją Edge Microgateway wdrożona w klastrze może potrwać kilka minut.

Testowanie serwera proxy

Uzyskiwanie adresu IP ruchu przychodzącego

Za pomocą zewnętrznego adresu IP zasobu Ingress możesz wywoływać usługę Edge Microgateway spoza klastra.

  1. Uzyskaj zewnętrzny adres IP kontrolera ruchu przychodzącego:

    kubectl get ing -o wide

    Przykładowe dane wyjściowe:

    NAME                        HOSTS     ADDRESS          PORTS     AGE
    edge-microgateway-ingress   *         35.238.249.62    80        37m
    
  2. Skopiuj wartość ADDRESS 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ż ustawić go za pomocą tego polecenia:

    export GATEWAY_IP=$(kubectl describe ing edge-microgateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
  3. Sprawdź, czy zmienna została wyeksportowana. Na przykład:

    echo $GATEWAY_IP

    Przykładowe dane wyjściowe:

    35.238.249.62
    

Wywoływanie interfejsu API

Po pobraniu zmian konfiguracji do mikrobramy możesz spróbować wywołać interfejs API. Do wywoływania interfejsu API używasz adresu IP kontrolera ruchu przychodzącego (zapisanego w zmiennej GATEWAY_IP), ponieważ umożliwia on wywoływanie serwera proxy spoza klastra Kubernetes. Mapowanie z zasobu Ingress na Edge Microgateway zostało utworzone podczas wdrażania Edge Microgateway w klastrze.

  1. Wywołaj interfejs API bez klucza interfejsu API. Pojawi się komunikat o błędzie:

    curl $GATEWAY_IP:80/hello/

    Oczekiwane dane wyjściowe:

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

    Jeśli widzisz ten komunikat, być może trzeba będzie jeszcze trochę poczekać na zakończenie synchronizacji:

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

    Aby móc wykonywać udane wywołania interfejsu API, potrzebujesz klucza interfejsu API.

  2. Pobierz klucz klienta z utworzonej przez siebie aplikacji dla programistów. Ta wartość to klucz interfejsu API, którego potrzebujesz do wywołania testowego serwera proxy:

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

    Na przykład:

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

    Dane wyjściowe:

    Hello world
    

    Jeśli zobaczysz odpowiedź „Hello world”, oznacza to, że Edge Microgateway została skonfigurowana tak, aby wywoływała usługę helloworld w klastrze Kubernetes.

Co dalej?

W sekcji Zadania znajdziesz informacje na temat dodawania niestandardowych wtyczek, skalowania wdrażania, wprowadzania zmian w konfiguracji i innych zadań, które możesz wykonać.