Wdrażanie Edge Microgateway jako usługi

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Wprowadzenie

Z tego tematu dowiesz się, jak uruchomić Edge Microgateway w klastrze Kubernetes jako samodzielna usługa.

Więcej informacji znajdziesz w artykule Omówienie integracji Edge Microgateway z Kubernetes.

Zanim zaczniesz

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

Konfigurowanie Edge Microgateway

To polecenie konfiguruje Edge Microgateway dla 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 w Edge (musisz być administratorem organizacji).

    • env: środowisko w organizacji (np. środowisko 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. Aby wdrożyć Edge Microgateway jako usługę w klastrze Kubernetes, uruchom to polecenie:

    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 komendzie edgemicro configure.
    • env – środowisko określone w instrukcji edgemicro configure.
    • edgemicro-key – klucz zwrócony przez polecenie edgemicro configure.
    • edgemicro-secret – wartość tajna zwrócona 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 Ingress, aby zezwalać na dostęp zewnętrzny do usługi edge-microgateway. Po wklejeniu polecenia w terminalu może być konieczne naciśnięcie klawisza Enter:

    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
    

    W przypadku powodzenia zobaczysz ten komunikat:

    ingress "edge-microgateway-ingress" created
    

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

Wdrażanie testowej usługi

W następujących krokach wdrożymy na klastrze prostą usługę testową. Kontroler Ingress nie zezwala na wywołanie usługi spoza klastra. Później skonfigurujesz Edge Microgateway, aby wywoływał usługę jako swój cel. Kontroler Ingress umożliwia dostęp do usługi edge-microgateway z zewnątrz.

  1. Wdrożyć 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. Uwaga: usługa helloworld nie ma zewnętrznego adresu IP. W kolejnych krokach skonfigurujesz Edge Microgateway, 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
    

Konfigurowanie Edge Microgateway jako serwera proxy dla usługi

Uzyskaj wewnętrzny adres IP usługi helloworld i dodaj go jako docelowe „pośrednictwo z obsługą mikrobramki”. Tworzenie serwera proxy „świadomego mikrobramki” jest standardowym wymaganiem mikrobramki Edge.

Zobacz też Więcej informacji o przekierowaniach obsługujących Microgateway.

Pobieranie wewnętrznego adresu IP usługi testowej

  1. Uzyskaj 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-IPPORT. Na przykład w przykładzie powyżej są to wartości 10.55.254.2558081. Wartości w Twoim systemie będą inne.

Tworzenie serwera proxy obsługującego mikrobramki na urządzeniach Edge

  1. Zaloguj się w interfejsie Edge.
  2. Wybierz tę samą organizację, którą podano wcześniej podczas konfigurowania Edge Microgateway.
  3. W menu bocznym kliknij Rozwijaj > Proxy interfejsu API.
  4. Kliknij + Serwer proxy. Otworzy się kreator tworzenia proxy.
  5. Na pierwszej stronie kreatora wybierz Serwer proxy odwrotny (najczęstszy).
  6. Kliknij Dalej.
  7. Na stronie Szczegóły w kreatorze skonfiguruj ustawienia w ten sposób: Pamiętaj, aby wypełnić kreatora dokładnie w sposób pokazany na ilustracji. Sprawdź, czy nazwa serwera proxy zawiera prefiks edgemicro_.

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

    3. Dotychczasowe interfejsy API: http://<cluster_ip>:<port>

      Przykład: http://10.55.254.255:8081

  8. Kliknij Dalej.

  9. Na stronie Bezpieczeństwo w kreatorze wybierz Przepuść (brak).

  10. Kliknij Dalej.

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

  12. Kliknij Dalej.

  13. Na stronie „Tworzenie” w kreatorze sprawdź ustawienia serwera proxy. Upewnij się, że wybrane jest środowisko testowe.

  14. Kliknij Kompiluj i wdróż.

Tworzenie programisty

Do testowania możesz użyć istniejącego konta dewelopera lub utworzyć nowe w ten sposób:

  1. W menu nawigacyjnym po lewej stronie kliknij Opublikuj > Deweloperzy.
  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 zgodnie z instrukcjami podanymi poniżej. Do produktu dodasz 2 serwery proxy: edgemicro-authedgemicro_hello.

Więcej informacji o opcjach konfiguracji produktu znajdziesz w artykule Więcej informacji o konfiguracji produktu w interfejsie API.

  1. W menu nawigacyjnym po lewej stronie wybierz Opublikuj > Produkty interfejsu API.
  2. Kliknij + Usługa API. Pojawi się strona ze szczegółami produktu.
  3. Wypełnij stronę Szczegóły produktu w ten sposób: Nie klikaj Zapisz, dopóki nie zostaniesz o to poproszony.

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

  5. Ustaw zasób na / (pojedyncza ukośnica).

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

  7. W dolnej części strony kliknij + Proxy API.

  8. Wybierz serwer proxy o nazwie edgemicro-auth.

  9. Ponownie kliknij + Serwer proxy interfejsu API.

  10. Wybierz serwer proxy obsługujący mikrobramki o nazwie edgemicro_hello.

  11. Kliknij Zapisz.

Tworzenie aplikacji związanej z programistą

  1. W menu nawigacyjnym po lewej stronie wybierz Opublikuj > Aplikacje.
  2. Kliknij + Aplikacja. Pojawi się strona Szczegóły aplikacji dewelopera.
  3. Wypełnij stronę Aplikacja dla dewelopera w ten sposób: Nie zapisuj, dopóki nie otrzymasz instrukcji.

    Nazwa hello-world-app
    Wyświetlana nazwa Edge Micro hello app
    Dla programistów Wybierz utworzonego dewelopera testowego lub dowolnego dewelopera.
  4. W sekcji Dane logowania kliknij + Produkt i wybierz utworzony przez siebie produkt: hello-world-product.

  5. Kliknij Zapisz.

  6. Wróciłeś/Wróciłaś na stronę z listą wszystkich aplikacji dewelopera.

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

  8. Obok Klucza klienta kliknij Pokaż.

  9. Skopiuj wartość klucza Consumer Key. Ta wartość to klucz interfejsu API, którego użyjesz do bezpiecznego wywoływania interfejsu API w usłudze /hello.

  10. Poczekaj kilka minut. Zmiany wprowadzone w Apigee Edge mogą synchronizować się z instancją Edge Microgateway wdrożonej w klastrze przez kilka minut.

Testowanie serwera proxy

Pobieranie adresu IP Ingress

Dzięki zewnętrznemu adresowi IP obiektu Ingress możesz wywoływać usługę Edge Microgateway spoza klastra.

  1. Uzyskaj 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ć je automatycznie:

    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ą zaimportowane do mikrobramki, 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 do Edge Microgateway zostało utworzone podczas wdrażania Edge Microgateway w klastrze.

  1. Wywoływanie interfejsu API bez klucza API. Pojawi się komunikat o błędzie, jak pokazano poniżej:

    curl $GATEWAY_IP:80/hello/

    Oczekiwany wynik:

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

    Jeśli widzisz ten komunikat, może być konieczne odczekanie trochę dłużej, aż synchronizacja się zakończy:

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

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

  2. Uzyskaj klucz Consumer Key z utworzonej przez siebie aplikacji dewelopera. Ta wartość to klucz 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 prawidłowo skonfigurowana do wywoływania usługi 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 Tasks (Zadania).