Wdrażanie Edge Microgateway jako usługi

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 usługę samodzielną.

Więcej informacji znajdziesz w artykule Integracja Edge Microgateway z Kubernetes – omówienie.

Zanim zaczniesz

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

Konfigurowanie Edge Microgateway

To 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 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 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. Uruchom 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 określona w poleceniu edgemicro configure.
    • env – środowisko określone w poleceniu edgemicro configure.
    • edgemicro-key – klucz zwrócony przez polecenie edgemicro configure.
    • edgemicro-secret – tajny klucz 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 i wklej ten kod w terminalu. Kod konfiguruje kontroler Ingress, aby umożliwić dostęp zewnętrzny 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ę powiedzie, zobaczysz te dane wyjściowe:

    ingress "edge-microgateway-ingress" created
    

    Kontroler Ingress jest teraz skonfigurowany tak, aby umożliwić dostęp zewnętrzny do usługi edge-microgateway.

Wdrażanie usługi testowej

Te czynności wdrażają w klastrze prostą usługę testową. Kontroler Ingress nie zezwala na wywoływanie usługi spoza klastra. Później skonfigurujesz Edge Microgateway tak, aby wywoływał usługę jako swój cel. Kontroler Ingress zezwala na dostęp zewnętrzny do usługi edge-microgateway.

  1. Wdróż przykładową usługę helloworld. Ponieważ Ingress nie zna tej usługi, 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ę powiodło. Pamiętaj, że usługa helloworld nie ma zewnętrznego adresu IP. W kolejnych krokach skonfigurujesz Edge Microgateway tak, aby uzyskiwał 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
    

Konfigurowanie Edge Microgateway jako serwera proxy dla usługi

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

Zobacz też Co musisz wiedzieć o serwerach proxy „microgateway-aware”.

Pobieranie wewnętrznego adresu IP usługi testowej

  1. Pobierz wewnętrzny adres IP klastra i port 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 CLUSTER-IP i PORT. Na przykład w powyższym przykładzie te wartości to 10.55.254.255 i 8081. Wartości w Twoim systemie będą inne.

Tworzenie serwera proxy „microgateway-aware” w Edge

  1. Zaloguj się w interfejsie Edge.
  2. Wybierz tę samą organizację, którą określono wcześniej podczas konfigurowania Edge Microgateway.
  3. W menu nawigacyjnym po lewej stronie kliknij Develop (Tworzenie) > API Proxies (Serwery proxy API).
  4. Kliknij + Proxy. Otworzy się kreator Build a Proxy (Tworzenie serwera proxy).
  5. Na pierwszej stronie kreatora kliknij Reverse proxy (most common) (Serwer proxy odwrotny – najczęstszy).
  6. Kliknij Dalej.
  7. Na stronie z informacjami kreatora skonfiguruj te ustawienia. Wypełnij kreator dokładnie tak, jak pokazano. Upewnij się, że nazwa serwera proxy ma prefiks edgemicro_.

    1. Proxy Name (Nazwa serwera proxy): edgemicro_hello
    2. Proxy Base Path (Podstawowa ścieżka serwera proxy): /hello

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

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

  8. Kliknij Dalej.

  9. Na stronie Security (Bezpieczeństwo) kreatora kliknij Pass through (none) (Przekaż dalej – brak).

  10. Kliknij Dalej.

  11. Na stronie Virtual Hosts (Hosty wirtualne) kreatora zaakceptuj ustawienia domyślne.

  12. Kliknij Dalej.

  13. Na stronie Build (Tworzenie) kreatora sprawdź ustawienia serwera proxy. Upewnij się, że wybrane jest środowisko testowe.

  14. Kliknij Build and Deploy (Utwórz i wdróż).

Tworzenie programisty

Do testowania możesz użyć istniejącego programisty lub utworzyć nowego:

  1. W menu nawigacyjnym po lewej stronie kliknij Publish (Publikowanie) > Developers (Programiści).
  2. Kliknij + Developer (Programista).
  3. Wypełnij okno, aby utworzyć nowego programistę. Możesz użyć dowolnej nazwy programisty lub adresu e-mail.

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ługi znajdziesz w artykule Co musisz wiedzieć o konfiguracji usługi API konfiguracji.

  1. W menu nawigacyjnym po lewej stronie kliknij Publish (Publikowanie) > API Products (Usługi API).
  2. Kliknij + API Product (Usługa API). Pojawi się strona Product Details (Szczegóły usługi).
  3. Wypełnij stronę Product Details (Szczegóły usługi) w ten sposób. Nie klikaj Save (Zapisz), dopóki nie pojawi się taka instrukcja.

    Name (Nazwa) hello-world-product
    Display Name (Wyświetlana nazwa) Edge Micro hello product
    Environment (Środowisko) test
    Access (Dostęp) Public
    Key Approval Type (Typ zatwierdzenia klucza) Automatic
  4. W dolnej połowie strony kliknij + Custom Resource (Zasób niestandardowy).

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

  6. Ponownie kliknij + Custom Resource (Zasób niestandardowy) i dodaj ścieżkę /**.

  7. W dolnej części strony kliknij + API Proxy (Serwer proxy API).

  8. Kliknij serwer proxy o nazwie edgemicro-auth.

  9. Ponownie kliknij + API Proxy.

  10. Kliknij serwer proxy „microgateway-aware” o nazwie edgemicro_hello.

  11. Kliknij Save (Zapisz).

Tworzenie aplikacji związanej z programistą

  1. W menu nawigacyjnym po lewej stronie kliknij Publish (Publikowanie) > Apps (Aplikacje).
  2. Kliknij + App (Aplikacja). Pojawi się strona z informacjami o aplikacji dla programistów.
  3. Wypełnij stronę Developer App (Aplikacja związana z programistą) w ten sposób. Nie klikaj Save (Zapisz), dopóki nie pojawi się taka instrukcja.

    Name (Nazwa) hello-world-app
    Display Name (Wyświetlana nazwa) Edge Micro hello app
    Developer (Programista) Wybierz utworzonego programistę testowego lub dowolnego innego.
  4. W sekcji Credentials (Dane logowania) kliknij + Product (Usługa) i wybierz utworzoną usługę: hello-world-product.

  5. Kliknij Save (Zapisz).

  6. Wrócisz do strony z listą wszystkich aplikacji związanych z programistą.

  7. Kliknij utworzoną aplikację hello-world-app.

  8. Obok Consumer Key (Klucz klienta) kliknij Show (Pokaż).

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

  10. Poczekaj kilka minut. Synchronizacja zmian wprowadzonych w Apigee Edge z instancją Edge Microgateway wdrożoną w klastrze trwa kilka minut.

    .

Testowanie serwera proxy

Pobieranie adresu IP Ingress

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

  1. Pobierz zewnętrzny adres IP kontrolera Ingress:

    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 dla 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ć zmienną:

    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

Gdy zmiany konfiguracji zostaną pobrane do microgateway, możesz spróbować wywołać interfejs API. Do wywołania interfejsu API używasz adresu IP kontrolera Ingress (zapisanego w zmiennej GATEWAY_IP), ponieważ ten adres IP umożliwia wywołanie serwera proxy spoza klastra Kubernetes. Mapowanie z Ingress na Edge Microgateway zostało utworzone podczas wdrażania Edge Microgateway w klastrze.

  1. Wywołaj interfejs API bez klucza interfejsu API. Wyświetli się komunikat o błędzie, jak pokazano poniżej:

    curl $GATEWAY_IP:80/hello/

    Oczekiwane dane wyjściowe:

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

    Jeśli widzisz ten komunikat, może być konieczne poczekanie, aż synchronizacja się zakończy:

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

    Aby wywoływać interfejs API, potrzebujesz klucza interfejsu API.

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

    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 widzisz odpowiedź „Hello world”, oznacza to, że udało Ci się skonfigurować Edge Microgateway tak, aby wywoływał usługę helloworld w klastrze Kubernetes.

Co dalej?

Więcej informacji o dodawaniu niestandardowych wtyczek, skalowaniu wdrożenia, wprowadzaniu zmian w konfiguracji i innych zadaniach znajdziesz w sekcji Zadania.