Esegui il deployment di Edge Microgateway come servizio

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

Introduzione

Questo argomento spiega come eseguire Edge Microgateway in un cluster Kubernetes come come servizio autonomo.

Per saperne di più, consulta Panoramica dell'integrazione di Edge Microgateway con Kubernetes.

Prima di iniziare

Completa i passaggi descritti nella sezione Prerequisiti.

Configura Edge Microgateway

Il comando seguente configura Edge Microgateway per la tua organizzazione Apigee ed esegue il deployment del proxy edgemicro-auth.

  1. Esegui questo comando:

    edgemicro configure -o [org] -e [env] -u [username]

    Dove:

    • org: il nome dell'organizzazione Edge (devi essere un amministratore dell'organizzazione).

    • env: un ambiente nella tua organizzazione, ad esempio test o produzione.

    • username: l'indirizzo email associato al tuo account Apigee.

    di Gemini Advanced.

    Esempio

    edgemicro configure -o docs -e test -u jdoe@example.com

    L'output (l'esempio mostrato di seguito) viene salvato nel file:

    $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!
    

Deployment di Edge Microgateway come servizio

  1. Esegui questo comando per eseguire il deployment di Edge Microgateway come servizio nel tuo Cluster Kubernetes:

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

    dove:

    • org: l'organizzazione Apigee specificata nel comando edgemicro configure.
    • env: l'ambiente specificato nel comando edgemicro configure.
    • edgemicro-key: la chiave restituita dal comando edgemicro configure.
    • edgemicro-secret: il secret restituito dal comando edgemicro configure.
    • file path of org-env-config.yaml - Il percorso del file di configurazione di Edge Micro restituito dal comando edgemicro configure.

    Ad esempio:

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

    Output di esempio:

    config/myorg-test-config.yaml)
    service "edge-microgateway" created
    deployment "edge-microgateway" created
    secret "mgwsecret" created
    
  2. Copia e incolla il seguente codice nel tuo terminale. Il codice configura il controller Ingress per consentire accesso esterno al servizio edge-microgateway. Potresti dover premere Invio dopo aver incollato il comando nel terminale:

    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
    

    Se l'operazione riesce, vedrai questo output:

    ingress "edge-microgateway-ingress" created
    

    Il controller Ingress è ora configurato per consentire l'accesso esterno al Servizio edge-microgateway.

esegui il deployment di un servizio di test

I passaggi seguenti eseguono il deployment di un semplice servizio di test nel tuo cluster. La Il controller Ingress non consente di chiamare il servizio dall'esterno del cluster. Successivamente, configurerai Edge Microgateway per chiamare il servizio come destinazione. Il controller Ingress consente l'accesso esterno al servizio edge-microgateway.

  1. Esegui il deployment del servizio helloworld di esempio. Poiché il traffico in entrata non sa su questo servizio, non è possibile chiamare il servizio dall'esterno del cluster.

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

    Output di esempio:

    service "helloworld" created deployment "helloworld" created
    
  2. Verifica che il deployment sia andato a buon fine. Tieni presente che non esiste un IP esterno il servizio helloworld. Nei passaggi seguenti, configurerai Edge Microgateway per accedere all'IP interno del servizio.

    kubectl get services -n default

    Output di esempio:

    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
    

Configura Edge Microgateway per il proxy per il servizio

Recupera l'IP interno per il servizio helloworld e aggiungilo come destinazione di un "microgateway-aware" proxy. Creazione di un "microgateway-aware" è un proxy requisito standard di Edge Microgateway.

Vedi anche Cosa devi sapere su Microgateway-aware proxy.

Ottieni l'IP interno per il servizio di test

  1. Ottieni l'IP e la porta del cluster interni per il servizio helloworld:

    kubectl get services helloworld

    Output di esempio:

    NAME         TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    helloworld   NodePort   10.55.254.255   <none>        8081:30329/TCP   3m
    
  2. Copia i valori di CLUSTER-IP e PORT. Ad esempio, nell'esempio sopra, questi valori sono: 10.55.254.255 e 8081. I valori per i tuoi sarà diverso.

Crea un proxy sensibile al microgateway su Edge

  1. Accedi alla UI Edge.
  2. Seleziona la stessa organizzazione che hai specificato in precedenza al momento della configurazione Microgateway Edge.
  3. Seleziona Sviluppo > Proxy API nel menu di navigazione laterale.
  4. Fai clic su + Proxy. Viene visualizzata la procedura guidata Crea un proxy.
  5. Nella prima pagina della procedura guidata, seleziona Inverti proxy (più comune).
  6. Fai clic su Avanti.
  7. Nella pagina Dettagli della procedura guidata, configura come segue. Assicurati di compilare esattamente come mostrato. Assicurati che il nome del proxy abbia il prefisso edgemicro_.

    1. Nome proxy: edgemicro_hello
    2. Percorso di base proxy: /hello

    3. API esistente: http://<cluster_ip>:<port>

      Ad esempio: http://10.55.254.255:8081

  8. Fai clic su Avanti.

  9. Nella pagina Sicurezza della procedura guidata, seleziona Passthrough (nessuno).

  10. Fai clic su Avanti.

  11. Nella pagina Host virtuali della procedura guidata, accetta i valori predefiniti.

  12. Fai clic su Avanti.

  13. Nella pagina Crea della procedura guidata, rivedi le impostazioni del proxy. Assicurati che test.

  14. Fai clic su Crea ed esegui il deployment.

Creazione di uno sviluppatore

Puoi utilizzare uno sviluppatore esistente per i test oppure crearne uno nuovo procedendo nel seguente modo:

  1. Seleziona Pubblica > Sviluppatori nel menu di navigazione laterale.
  2. Fai clic su + Sviluppatore.
  3. Compila la finestra di dialogo per creare un nuovo sviluppatore. Puoi rivolgerti a qualsiasi sviluppatore nome/indirizzo email desiderato.

Creazione di un prodotto API

Crea un prodotto API come descritto di seguito. Aggiungerai due proxy Prodotto: edgemicro-auth e edgemicro_hello.

Puoi scoprire di più Opzioni di configurazione del prodotto in Che cosa devi sapere sul prodotto API configurazione.

  1. Seleziona Pubblica > Prodotti API nel menu di navigazione laterale.
  2. Fai clic su + Prodotto API. Viene visualizzata la pagina Dettagli prodotto.
  3. Compila la pagina Dettagli prodotto come segue. Non fare clic su Salva fino al a cui hai ricevuto istruzioni.

    Nome hello-world-product
    Nome visualizzato Edge Micro hello product
    Ambiente test
    Accesso Public
    Tipo di approvazione chiave Automatic
  4. Nella metà inferiore della pagina, fai clic su + Risorsa personalizzata.

  5. Imposta la risorsa su / (una singola barra).

  6. Seleziona di nuovo + Risorsa personalizzata e aggiungi il percorso /**.

  7. Nella parte inferiore della pagina, fai clic su + Proxy API.

  8. Seleziona il proxy denominato edgemicro-auth.

  9. Fai di nuovo clic su + Proxy API.

  10. Seleziona il proxy microgateway-aware denominato edgemicro_hello.

  11. Fai clic su Salva.

Creazione di un'app sviluppatore

  1. Seleziona Pubblica > App nel menu di navigazione laterale.
  2. Fai clic su + App. Viene visualizzata la pagina dei dettagli dell'app sviluppatore.
  3. Compila la pagina dell'app sviluppatore come segue. Non salvare finché non ti viene chiesto di farlo.

    Nome hello-world-app
    Nome visualizzato Edge Micro hello app
    Developer Seleziona lo sviluppatore di test che hai creato, altrimenti qualsiasi sviluppatore potrà scegliere.
  4. Nella sezione Credentials (Credenziali), fai clic su + Product (+ Prodotto) e seleziona il prodotto che data creazione: hello-world-product.

  5. Fai clic su Salva.

  6. Torni alla pagina che elenca tutte le app sviluppatore.

  7. Seleziona l'app che hai appena creato, hello-world-app.

  8. Fai clic su Show (Mostra) accanto a Consumer Key (Chiave utente).

  9. Copia il valore della chiave utente. Questo valore corrisponde al Chiave API da utilizzare per effettuare chiamate API sicure a /hello.

  10. Attendi qualche minuto. Le modifiche apportate su Apigee richiedono alcuni minuti Edge per sincronizzarsi con l'istanza di Edge Microgateway di cui è stato eseguito il deployment in un cluster Kubernetes.

Testa il proxy

Recupera l'indirizzo IP Ingress

Con l'IP esterno per la risorsa Ingress, puoi chiamare il servizio Edge Microgateway dall'esterno del cluster.

  1. Ottieni l'indirizzo IP esterno del controller Ingress:

    kubectl get ing -o wide

    Output di esempio:

    NAME                        HOSTS     ADDRESS          PORTS     AGE
    edge-microgateway-ingress   *         35.238.249.62    80        37m
    
  2. Copia il valore ADDRESS per l'oggetto Ingress ed esportalo in una variabile. Tu puoi impostare la variabile manualmente:

    export GATEWAY_IP=external_ip

    Ad esempio:

    export GATEWAY_IP=35.238.249.62

    In alternativa, utilizza questo comando per impostarlo per te:

    export GATEWAY_IP=$(kubectl describe ing edge-microgateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
  3. Verifica che la variabile sia stata esportata. Ad esempio:

    echo $GATEWAY_IP

    Output di esempio:

    35.238.249.62
    

Chiama l'API

Dopo aver inserito le modifiche alla configurazione nel microgateway, puoi e provare a chiamare l'API. Utilizzi l'IP del controller Ingress (che hai salvato nella variabile GATEWAY_IP). chiamare l'API perché questo IP consente di chiamare il proxy dall'esterno del cluster Kubernetes. La il mapping da Ingress a Edge Microgateway è stato creato al momento del deployment di Edge Microgateway nel cluster.

  1. Chiama l'API senza una chiave API. Riceverai un messaggio di errore, come illustrato sotto:

    curl $GATEWAY_IP:80/hello/

    Output previsto:

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

    Se vedi questo messaggio, potresti dover attendere ancora un po' di tempo prima che la sincronizzazione viene completata:

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

    Per effettuare chiamate API riuscite, è necessaria la chiave API.

  2. Ottieni la chiave consumer dall'app sviluppatore che hai creato. Questo valore corrisponde al Chiave API che devi chiamare il proxy di test:

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

    Ad esempio:

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

    Output:

    Hello world
    

    Se visualizzi "Hello World" risposta, la configurazione è stata completata. Edge Microgateway per chiamare il servizio helloworld all'interno di Kubernetes in un cluster Kubernetes.

Passaggi successivi

Per informazioni, consulta la sezione Attività sull'aggiunta di plug-in personalizzati, la scalabilità del deployment, le modifiche alla configurazione e altre attività che potresti voler eseguire.