Implantar o Edge Microgateway como serviço

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

Introdução

Neste tópico, explicamos como executar o Edge Microgateway em um cluster do Kubernetes como um serviço independente.

Para mais informações, acesse Visão geral da integração do Edge Microgateway com o Kubernetes.

Antes de começar

Conclua as etapas descritas em Pré-requisitos.

Configurar o Edge Microgateway

O comando a seguir configura o Edge Microgateway para sua organização da Apigee e implanta o proxy edgemicro-auth.

  1. execute o seguinte comando:

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

    Em que:

    • org: o nome da sua organização de Edge (você precisa ser um administrador da organização).

    • env: um ambiente na organização (como teste ou produção).

    • username: o endereço de e-mail associado à sua conta da Apigee.

    .

    Exemplo

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

    A saída (exemplo abaixo) é salva no arquivo:

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

Implantar o Edge Microgateway como um serviço

  1. Execute o comando a seguir para implantar o Edge Microgateway como um serviço na sua Cluster do Kubernetes:

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

    em que:

    • org: a organização da Apigee que você especificou no comando edgemicro configure.
    • env: o ambiente especificado no comando edgemicro configure.
    • edgemicro-key: a chave retornada do comando edgemicro configure.
    • edgemicro-secret: o secret retornado do comando edgemicro configure.
    • file path of org-env-config.yaml: o caminho para o arquivo de configuração do Edge Micro retornado do comando edgemicro configure.

    Exemplo:

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

    Exemplo de saída:

    config/myorg-test-config.yaml)
    service "edge-microgateway" created
    deployment "edge-microgateway" created
    secret "mgwsecret" created
    
  2. Copie e cole o código a seguir no seu terminal. O código configura o controlador Ingress para permitir acesso externo ao serviço edge-microgateway. Pode ser necessário pressionar Enter depois de colar o comando no terminal:

    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 tudo der certo, você vai ver esta resposta:

    ingress "edge-microgateway-ingress" created
    

    O controlador de entrada agora está configurado para permitir o acesso externo ao edge-microgateway.

Implantar um serviço de teste

As etapas a seguir implantam um serviço de teste simples no cluster. A O controlador de entrada não permite que o serviço seja chamado de fora do cluster. Depois, você vai configurar o Edge Microgateway para chamar o serviço como destino. O controlador de entrada permite acesso externo ao serviço edge-microgateway.

  1. Implante o serviço helloworld de amostra. Como o Ingress não sabe sobre esse serviço, ele não pode ser chamado de fora do cluster.

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

    Exemplo de saída:

    service "helloworld" created deployment "helloworld" created
    
  2. Verifique se a implantação foi bem-sucedida. Não há IP externo para o serviço helloworld. Nas etapas a seguir, você vai configurar o Edge Microgateway para acessar o IP interno do serviço.

    kubectl get services -n default

    Exemplo de saída:

    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
    

Configurar o Edge Microgateway para fazer o proxy do serviço

Consiga o IP interno do serviço helloworld e adicione-o como o destino de um ambiente com "reconhecimento de microgateway" proxy. Como criar uma "reconhecimento de microgateway" proxy é um requisito padrão do Edge Microgateway.

Confira também O que você precisa saber sobre o recurso com reconhecimento de microgateway proxies.

Encontre o IP interno do serviço de teste

  1. Consiga o IP do cluster interno e a porta do serviço helloworld:

    kubectl get services helloworld

    Exemplo de saída:

    NAME         TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    helloworld   NodePort   10.55.254.255   <none>        8081:30329/TCP   3m
    
  2. Copie os valores de CLUSTER-IP e PORT. Por exemplo, no exemplo acima, esses valores são: 10.55.254.255 e 8081. Os valores da sua sistema será diferente.

Criar um proxy com reconhecimento de microgateway no Edge

  1. Faça login na interface do Edge.
  2. Selecione a mesma organização especificada anteriormente durante a configuração o Edge Microgateway.
  3. Selecione Desenvolver > Proxies de API no menu de navegação lateral.
  4. Clique em + Proxy. O assistente Build a Proxy é aberto.
  5. Na primeira página do assistente, selecione Reverse proxy (most common).
  6. Clique em Próxima.
  7. Na página "Detalhes" do assistente, faça as configurações a seguir. Certifique-se de preencher o assistente exatamente como mostrado. Verifique se o nome do proxy tem o prefixo edgemicro_:

    1. Nome do proxy: edgemicro_hello
    2. Caminho base do proxy: /hello

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

      Por exemplo: http://10.55.254.255:8081

  8. Clique em Próxima.

  9. Na página "Segurança" do assistente, selecione Passar por (nenhum).

  10. Clique em Próxima.

  11. Na página "Virtual Hosts" do assistente, aceite os valores padrão.

  12. Clique em Próxima.

  13. Na página Criar do assistente, revise suas configurações de proxy. Certifique-se de que test é selecionado.

  14. Clique em Build and Deploy.

Criar um desenvolvedor

Use um desenvolvedor atual para teste ou crie um novo da seguinte maneira:

  1. Selecione Publicar > Desenvolvedores no menu de navegação lateral.
  2. Clique em + Desenvolvedor.
  3. Preencha a caixa de diálogo para criar um desenvolvedor. Você pode usar qualquer desenvolvedor nome/e-mail que quiser.

Criar um produto da API

Crie um produto de API conforme descrito abaixo. Você adicionará dois proxies ao Produto: edgemicro-auth e edgemicro_hello.

Você pode ler mais sobre Opções de configuração do produto em O que você precisa saber sobre o produto de API do Terraform.

  1. Selecione Publicar > Produtos da API no menu de navegação lateral.
  2. Clique em + Produto da API. A página "Detalhes do produto" será exibida.
  3. Preencha a página "Detalhes do produto" da seguinte maneira. Não clique em "Salvar até" instruídos a fazer isso.

    Nome hello-world-product
    Nome de exibição Edge Micro hello product
    Ambiente test
    Acesso Public
    Tipo de aprovação da chave Automatic
  4. Na metade de baixo da página, clique em + Recurso personalizado.

  5. Defina o recurso como / (uma barra única).

  6. Selecione + Recurso personalizado novamente e adicione o caminho /**.

  7. Na parte de baixo da página, clique em + Proxy de API.

  8. Selecione o proxy edgemicro-auth.

  9. Clique em + API Proxy novamente.

  10. Selecione o proxy com reconhecimento de microgateway chamado edgemicro_hello.

  11. Clique em Salvar.

Criar um app do desenvolvedor

  1. Selecione Publicar > Apps no menu de navegação lateral.
  2. Clique em + Aplicativo. A página "Detalhes do app do desenvolvedor" vai aparecer.
  3. Preencha a página do app do desenvolvedor da maneira a seguir. Não salve até que seja instruído a faça isso.

    Nome hello-world-app
    Nome de exibição Edge Micro hello app
    Desenvolvedor Selecione o desenvolvedor de teste que você criou ou qualquer um.
  4. Na seção "Credenciais", clique em + Produto e selecione o item criado em: hello-world-product.

  5. Clique em Salvar.

  6. Você está de volta à página que lista todos os apps do desenvolvedor.

  7. Selecione o app que você acabou de criar, hello-world-app.

  8. Clique em Show ao lado de Consumer Key.

  9. Copie o valor da chave do consumidor. Esse valor é a Chave de API que você usará para fazer chamadas de API seguras para /hello

  10. Aguarde alguns minutos. As alterações feitas na Apigee levam alguns minutos Borda para sincronizar com a instância do Edge Microgateway implantada na aglomerado.

Testar o proxy

Encontre o endereço IP de entrada

Com o IP externo da entrada, é possível chamar o serviço do Edge Microgateway de fora do cluster.

  1. Consiga o endereço IP externo do controlador do Ingress:

    kubectl get ing -o wide

    Exemplo de saída:

    NAME                        HOSTS     ADDRESS          PORTS     AGE
    edge-microgateway-ingress   *         35.238.249.62    80        37m
    
  2. Copie o valor ADDRESS da Entrada e exporte-o para uma variável. Você pode definir a variável manualmente:

    export GATEWAY_IP=external_ip

    Exemplo:

    export GATEWAY_IP=35.238.249.62

    Ou use este comando para configurá-la para você:

    export GATEWAY_IP=$(kubectl describe ing edge-microgateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
  3. Verifique se a variável foi exportada. Exemplo:

    echo $GATEWAY_IP

    Exemplo de saída:

    35.238.249.62
    

Chamar a API

Depois que as alterações de configuração forem enviadas para o microgateway, será possível tente chamar a API. Use o IP do controlador de entrada (que você salvou na variável GATEWAY_IP) para chamar a API, porque esse IP permite chamar o proxy de fora do cluster do Kubernetes. A O mapeamento da Entrada para o Edge Microgateway foi criado quando você implantou o Edge Microgateway ao cluster.

  1. Chame a API sem uma chave de API. Você vai receber uma mensagem de erro, como mostrado abaixo:

    curl $GATEWAY_IP:80/hello/

    Saída esperada:

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

    Se essa mensagem aparecer, talvez seja necessário aguardar um pouco mais até que a sincronização é concluída:

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

    Para fazer chamadas de API, você precisa da chave de API.

  2. Acesse a chave do cliente no app do desenvolvedor que você criou. Esse valor é a Chave de API necessária para chamar o proxy de teste:

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

    Exemplo:

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

    Saída:

    Hello world
    

    Se aparecer a mensagem "Hello world" resposta, você configurou com sucesso Edge Microgateway para chamar o serviço helloworld dentro do Kubernetes aglomerado.

A seguir

Consulte a seção Tarefas para mais informações sobre como adicionar plug-ins personalizados, escalonar a implantação, fazer alterações na configuração e outras tarefas que talvez você queira realizar.