Você está vendo a documentação do Apigee Edge.
Acesse a
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, consulte 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
.
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 sua 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
Execute o seguinte comando para implantar o Edge Microgateway como serviço no seu 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)
onde:
org
: a organização da Apigee que você especificou no comandoedgemicro configure
.env
: o ambiente especificado no comandoedgemicro configure
.edgemicro-key
: a chave retornada do comandoedgemicro configure
.edgemicro-secret
: o secret retornado do comandoedgemicro configure
.file path of org-env-config.yaml
: o caminho para o arquivo de configuração do Edge Micro retornado do comandoedgemicro 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
Copie e cole o código a seguir no terminal. O código configura o controlador do Ingress para permitir o acesso externo ao serviço
edge-microgateway
. Talvez seja 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
Em caso de êxito, você verá esta saída:
ingress "edge-microgateway-ingress" created
O controlador Entrada agora está configurado para permitir acesso externo ao serviço
edge-microgateway
.
Implantar um serviço de teste
Nas etapas a seguir, você implanta um serviço de teste simples no cluster. O controlador Ingress 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 Entrada permite acesso externo ao serviço edge-microgateway
.
Implante o serviço
helloworld
de amostra. Como o Ingress não conhece esse serviço, não é possível chamar o serviço de fora do cluster.kubectl apply -f samples/helloworld/helloworld-service.yaml
Exemplo de saída:
service "helloworld" created deployment "helloworld" created
Verifique se a implantação foi bem-sucedida. Observe que não há IP externo para o serviço
helloworld
. Nas etapas a seguir, você 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 proxy "microgateway-aware". A criação de um proxy "com reconhecimento de microgateway" é um
requisito padrão do Edge Microgateway.
Consulte também O que você precisa saber sobre proxies com reconhecimento de Microgateway.
Conferir o IP interno do serviço de teste
Consiga a porta e o IP interno do cluster para o 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
Copie os valores de
CLUSTER-IP
ePORT
. Por exemplo, no exemplo acima, esses valores são:10.55.254.255
e8081
. Os valores do seu sistema serão diferentes.
Criar um proxy com reconhecimento de microgateway no Edge
- Faça login na interface do Edge.
- Selecione a mesma organização que você especificou anteriormente ao configurar o Edge Microgateway.
- Selecione Desenvolver > Proxies de API no menu de navegação lateral.
- Clique em + Proxy. O assistente "Criar um proxy" será aberto.
- Na primeira página do assistente, selecione Reverse proxy (most common).
- Clique em Próxima.
Na página "Detalhes" do assistente, faça as configurações a seguir. Preencha o assistente exatamente como mostrado. Verifique se o nome do proxy tem o prefixo
edgemicro_
.- Nome do proxy: edgemicro_hello
Caminho base do proxy: /hello
API existente:
http://<cluster_ip>:<port>
Por exemplo: http://10.55.254.255:8081
Clique em Próxima.
Na página "Segurança" do assistente, selecione Passar por (nenhum).
Clique em Próxima.
Na página "Hosts virtuais" do assistente, aceite os padrões.
Clique em Próxima.
Na página "Criar" do assistente, revise suas configurações de proxy. Verifique se o ambiente de teste está selecionado.
Clique em Build and Deploy.
Criar um desenvolvedor
Use um desenvolvedor atual para teste ou crie um novo da seguinte maneira:
- Selecione Publicar > Desenvolvedores no menu de navegação lateral.
- Clique em + Desenvolvedor.
- Preencha a caixa de diálogo para criar um desenvolvedor. Use qualquer nome/e-mail de desenvolvedor.
Criar um produto da API
Crie um produto de API, conforme descrito abaixo. Você adicionará dois proxies ao produto: edgemicro-auth e edgemicro_hello.
Leia mais sobre as opções de configuração do produto em O que você precisa saber sobre a configuração do produto da API.
- Selecione Publicar > Produtos da API no menu de navegação lateral.
- Clique em + Produto da API. A página "Detalhes do produto" será exibida.
Preencha a página "Detalhes do produto" da maneira a seguir. Não clique em "Salvar" até receber a instrução para isso.
Nome hello-world-product
Display Name Edge Micro hello product
Ambiente test
Acesso Public
Tipo de aprovação da chave Automatic
Na metade inferior da página, clique em + Recurso personalizado.
Defina o recurso como
/
(uma única barra).Selecione + Recurso personalizado novamente e adicione o caminho
/**
.Na parte de baixo da página, clique em + Proxy da API.
Selecione o proxy chamado edgemicro-auth.
Clique em + Proxy de API novamente.
Selecione o proxy com reconhecimento de microgateway edgemicro_hello.
Clique em Salvar.
Criar um app do desenvolvedor
- Selecione Publicar > Apps no menu de navegação lateral.
- Clique em + App. A página "Detalhes do app do desenvolvedor" será exibida.
Preencha a página do app do desenvolvedor da maneira a seguir. Não salve até receber a instrução para fazer isso.
Nome hello-world-app
Display Name Edge Micro hello app
Desenvolvedor Selecione o desenvolvedor de teste que você criou. Caso contrário, qualquer um deles poderá ser usado. Na seção "Credenciais", clique em + Produto e selecione o produto que você criou:
hello-world-product.
Clique em Salvar.
Você está de volta à página que lista todos os apps do desenvolvedor.
Selecione o app que você acabou de criar,
hello-world-app
.Clique em Mostrar ao lado de Chave do cliente.
Copie o valor da chave do consumidor. Esse valor é a chave de API que você usará para fazer chamadas de API seguras para
/hello
.Aguarde alguns minutos. Leva alguns minutos para que as alterações feitas no Apigee Edge sejam sincronizadas com a instância do Edge Microgateway implantada no cluster.
Testar o proxy
Conferir o endereço IP de entrada
Com o IP externo da entrada, é possível chamar o serviço Edge Microgateway de fora do cluster.
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
Copie o valor
ADDRESS
da Entrada e exporte-o para uma variável. É possível definir a variável manualmente:export GATEWAY_IP=external_ip
Exemplo:
export GATEWAY_IP=35.238.249.62
Ou use este comando para fazer a configuração:
export GATEWAY_IP=$(kubectl describe ing edge-microgateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
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 ao microgateway, tente chamar a API. Use o IP do controlador de entrada, salvo na variável GATEWAY_IP
,
para chamar a API, porque esse IP permite chamar o proxy de fora do cluster do Kubernetes. O mapeamento da Entrada para o Edge Microgateway foi criado quando você implantou o Edge Microgateway no cluster.
Chamar a API sem uma chave. Você receberá uma mensagem de erro, conforme mostrado abaixo:
curl $GATEWAY_IP:80/hello/
Saída esperada:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
Se você vir essa mensagem, talvez seja necessário aguardar um pouco mais até que a sincronização seja concluída:
{"message":"no match found for /hello/","status":404}
Para fazer chamadas de API, você precisa da chave de API.
Acesse a chave do cliente no app do desenvolvedor que você criou. Esse valor é a chave de API que você precisa 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 você vir a resposta "Hello world", significa que você configurou com sucesso o Edge Microgateway para chamar o serviço helloworld dentro do cluster do Kubernetes.
A seguir
Consulte a seção Tarefas para ver informações sobre como adicionar plug-ins personalizados, escalonar a implantação, fazer alterações de configuração e outras tarefas que você pode executar.