Wdrażanie Edge Microgateway jako usługi

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 w ramach samodzielnej usługi.

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

Zanim zaczniesz

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

Konfigurowanie 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 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ługę

  1. Wykonaj następujące polecenie, aby wdrożyć Edge Microgateway jako usługę w Klaster 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 podane w poleceniu edgemicro configure.
    • edgemicro-key – klucz zwrócony z polecenia edgemicro configure.
    • edgemicro-secret – obiekt tajny zwrócony z polecenia edgemicro configure.
    • file path of org-env-config.yaml – ścieżka do pliku konfiguracji Edge Micro zwrócona z polecenia 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 w terminalu. Kod konfiguruje kontroler ruchu przychodzącego, zewnętrzny dostęp do usługi edge-microgateway. Być może trzeba będzie nacisnąć Enter po wklejeniu polecenia w terminalu:

    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, wyświetli się następujący wynik:

    ingress "edge-microgateway-ingress" created
    

    Kontroler ruchu przychodzącego jest teraz skonfigurowany tak, aby umożliwić dostęp z zewnątrz edge-microgateway.

Wdrażanie usługi testowej

Podane niżej kroki pozwolą Ci 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, aby wywoływał tę usługę jako docelową. Kontroler ruchu przychodzącego pozwala na dostęp z zewnątrz do usługi edge-microgateway.

  1. wdrożyć przykładową usługę helloworld, Obiekt Ingress nie wie, dotyczące 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ę udało. Zwróć uwagę, że nie ma zewnętrznego adresu IP instancji usługę helloworld. 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
    

Skonfiguruj serwer Edge Microgateway na serwer proxy dla usługi

Uzyskaj wewnętrzny adres IP usługi helloworld i dodaj go jako adres docelowy takiego, który jest świadomy mikrobramy, serwera proxy. Tworzenie obiektu „mikrogateway” serwer proxy to standardem Edge Microgateway.

Zobacz też Co trzeba wiedzieć o obsłudze standardu Microgateway serwerów proxy.

Uzyskiwanie wewnętrznego adresu IP usługi testowej

  1. Uzyskaj wewnętrzny adres IP i port klastra 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 z kolumn CLUSTER-IP i PORT. Na przykład: powyżej te wartości to: 10.55.254.255 i 8081. Wartości parametru będzie inny.

Tworzenie serwera proxy uwzględniającego mikrobramy w Edge

  1. Zaloguj się w interfejsie Edge.
  2. Wybierz tę samą organizację, która została określona wcześniej podczas konfiguracji. Edge Microgateway.
  3. Kliknij Programowanie > Proxy interfejsów API w bocznym menu nawigacyjnym.
  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 w kreatorze skonfiguruj ustawienia w następujący sposób. Wypełnij z kreatorem dokładnie w takiej formie. Sprawdź, czy 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>

      Przykład: http://10.55.254.255:8081

  8. Kliknij Dalej.

  9. Na stronie Zabezpieczenia w kreatorze wybierz Przekaż (brak).

  10. Kliknij Dalej.

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

  12. Kliknij Dalej.

  13. Na stronie Build w kreatorze sprawdź ustawienia serwera proxy. Upewnij się, że parametr wybrano środowisko testowe.

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

Tworzenie programisty

Do testowania możesz użyć dotychczasowego programisty lub utworzyć nowy:

  1. Kliknij Opublikuj > Programistów w bocznym menu nawigacyjnym.
  2. Kliknij + Deweloper.
  3. Wypełnij informacje w oknie, aby utworzyć nowego dewelopera. Możesz użyć usługi dowolnego programisty nazwę/adres e-mail.

Tworzenie usługi API

Utwórz usługę API w sposób opisany poniżej. Musisz dodać dwa serwery proxy do Usługa: edgemicro-auth i edgemicro_hello.

Więcej informacji znajdziesz Opcje konfiguracji usługi w artykule Co trzeba wiedzieć o usłudze API

  1. Kliknij Opublikuj > Usługi API w bocznym menu nawigacyjnym.
  2. Kliknij + Usługa API. Pojawi się strona Szczegóły produktu.
  3. Wypełnij stronę z informacjami o produkcie w następujący sposób. Nie klikaj „Zapisz” do o takie polecenie.

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

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

  6. Ponownie kliknij + 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 interfejsu API.

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

  11. Kliknij Zapisz.

Tworzenie aplikacji związanej z programistą

  1. Kliknij Opublikuj > Aplikacje w bocznym menu nawigacyjnym.
  2. Kliknij + Aplikacja. Pojawi się strona Szczegóły aplikacji dewelopera.
  3. 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 utworzony przez siebie programistę testów. W przeciwnym razie wszystko będzie w porządku.
  4. W sekcji Dane logowania kliknij + Usługa i wybierz usługę, której utworzono: hello-world-product.

  5. Kliknij Zapisz.

  6. Jesteś z powrotem na stronie z listą wszystkich aplikacji dewelopera.

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

  8. Kliknij Pokaż obok Klucz klienta.

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

  10. 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.

Testowanie serwera proxy

Uzyskiwanie adresu IP obiektu Ingress

Korzystając z zewnętrznego adresu IP obiektu Ingress, możesz wywołać 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. 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 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 przeniesieniu zmian konfiguracji do mikrobramy możesz spróbuj wywołać ten interfejs API. używasz adresu IP kontrolera ruchu przychodzącego (zapisanego w zmiennej GATEWAY_IP), do wywołania interfejsu API, ponieważ ten adres IP pozwala wywoływać serwer proxy spoza klastra Kubernetes. mapowanie z Ingress na Edge Microgateway zostało utworzone podczas wdrożenia Edge Microgateway; do klastra.

  1. Wywoływanie interfejsu API bez klucza interfejsu API. Pojawi się następujący komunikat o błędzie poniżej:

    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 poczekać na synchronizację zakończono:

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

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

  2. 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:80/hello/

    Na przykład:

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

    Dane wyjściowe:

    Hello world
    

    Jeśli zobaczysz komunikat „Hello world” oznacza to, że udało Ci się Edge Microgateway do wywoływania usługi helloworld w Kubernetes klastra.

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ć.