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 um proxy secundário Você tem duas opções de implantação de arquivo secundário: manual e automática por injeção. Este tópico descreve as duas opções.
Para mais informações, consulte Introdução ao Edge Microgateway no Kubernetes.
Antes de começar
Conclua as etapas descritas em Pré-requisitos.
Implantar um serviço de teste
Implante um "olá" simples e verifique a implantação:
Implante a amostra:
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
Verifique se o serviço está em execução. Talvez seja necessário aguardar alguns instantes até o pod é ativado para o estado de execução:
kubectl get pods --namespace=default
Exemplo de saída:
NAME READY STATUS RESTARTS AGE helloworld-569d6565f9-lwrrv 1/1 Running 0 17m
Exclua a implantação do serviço de teste. Ele será reinstalado mais tarde, depois de ativar injeção de arquivo secundário:
kubectl delete -f samples/helloworld/helloworld.yaml --namespace=default
Como usar a injeção manual de arquivo secundário
Das duas opções de injeção de sidecar, a injeção manual é a mais simples e direta
abordagem geral, o que pode ser feito com um único comando kubectl
.
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 organização (como teste ou produção).username
: o endereço de e-mail associado à sua conta da Apigee.
Exemplo
edgemicro configure -o myorg -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!
Injetar o Edge Microgateway como arquivo secundário
Para injetar manualmente o Edge Microgateway em um pod de serviço como um proxy de arquivo secundário, execute: este comando:
kubectl apply -f <(edgemicroctl -org=your_org -env=your_env -key=your_key -sec=your_secret -conf=config_file_path -svc=service_deployment_file)
em que:
your_org
: a organização da Apigee que você especificou no comandoedgemicro configure
.your_env
: o ambiente especificado no comandoedgemicro configure
.your_key
: a chave retornada do comandoedgemicro configure
.your_secret
: o secret retornado do comandoedgemicro configure
.config_file_path
: o caminho para o arquivo de configuração do Edge Micro retornado do comandoedgemicro configure
.service_deployment_file
: o caminho para o arquivo de implantação do serviço que terá o pod obter o serviço de arquivo secundário complementar. Por exemplo,samples/helloworld/helloworld.yaml
.
Exemplo:
kubectl apply -f <(edgemicroctl -org=myorg -env=test-key=0e3ecea28a64099410594406b30e54439af5265f8 -sec=e3919250bee37c69cb2e5b41170b488e1c1d -conf=/Users/jdoe/.edgemicro/myorg-test-config.yaml -svc=samples/helloworld/helloworld.yaml)
Testar a configuração
Verifique as implantações do serviço:
kubectl get services -n default
Exemplo de saída:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE helloworld NodePort 10.15.254.163 <none> 8081:32401/TCP 56s kubernetes ClusterIP 10.15.240.1 <none> 443/TCP 41m
Agora está tudo pronto para testar a implantação do arquivo secundário do Edge Microgateway. Acessar Teste o proxy para ver as etapas detalhadas.
Como usar a injeção automática de arquivo secundário
Nas etapas a seguir, você vai configurar a injeção automática de arquivo secundário para o cluster do Kubernetes. Esta configuração permite que o Edge Microgateway seja injetado como um arquivo secundário proxy no Kubernetes.
Instalar o injetor do sidecar
Instalar o ConfigMap que ativa a injeção de arquivo secundário do Edge Microgateway:
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
Execute o script a seguir para instalar o serviço webhook. O serviço de webhook é necessário para injeção automática de sidecar:
./install/kubernetes/webhook-create-signed-cert.sh \ --service edgemicro-sidecar-injector \ --namespace edgemicro-system \ --secret sidecar-injector-certs
Adicione o pacote de CAs ao arquivo de instalação do webhook. A biblioteca O api-server usa esse arquivo para invocar o webhook:
cat install/kubernetes/edgemicro-sidecar-injector.yaml | \ ./install/kubernetes/webhook-patch-ca-bundle.sh > \ install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
Instale o webhook do injetor do arquivo secundário do Edge Microgateway:
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
Exemplo de saída:
service "edgemicro-sidecar-injector" created serviceaccount "edgemicro-sidecar-injector-service-account" created deployment "edgemicro-sidecar-injector" created mutatingwebhookconfiguration "edgemicro-sidecar-injector" created
Verifique se o webhook do injetor de arquivo secundário do Edge Microgateway está em execução:
kubectl -n edgemicro-system get deployment -ledgemicro=sidecar-injector
Exemplo de saída:
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE edgemicro-sidecar-injector 1 1 1 1 12m
Verifique se o pod de injeção de arquivo secundário está em execução no cluster. O namespace
edgemicro-system
é onde os serviços do sistema estão instalados, incluindo o Controlador de entrada, back-end de HTTP padrão e injetor de arquivo secundário:kubectl get pods -n edgemicro-system
Exemplo de saída:
NAME READY STATUS RESTARTS AGE default-http-backend-55c6c69b88-gfnfd 1/1 Running 0 1h edgemicro-ingress-controller-64444469bf-jhn8b 1/1 Running 3 1h edgemicro-sidecar-injector-7d95698fbf-cq84q 1/1 Running 0 3m
Configurar e injetar o Edge Microgateway
Na próxima etapa, você vai executar um script interativo para criar um Edge Microgateway configuração de rede associada a um namespace do Kubernetes. Em seguida, injetará o no cluster do Kubernetes.
Execute o script interativo a seguir e forneça os parâmetros solicitados. A gera um perfil de configuração que você vai usar na próxima etapa.
./install/kubernetes/webhook-edgemicro-patch.sh
Para informações sobre os parâmetros de entrada, consulte a Referência.
Entradas de amostra:
Namespace to deploy application [default]:
Pressione Enter.
Authenticate with OAuth Token ("n","Y") [N/y]
Digite n.
Apigee username [required]:
Digite seu nome de usuário da Apigee (endereço de e-mail). Por exemplo,
jdoe@google.com
.Apigee password [required]:
Digite sua senha da Apigee.
Apigee organization [required]:
Insira o nome da sua organização da Apigee.
Apigee environment [required]:
Insira um nome de ambiente para sua organização. Por exemplo, "teste".
Virtual Host [default]:
Pressione Enter.
Is this Private Cloud ("n","y") [N/y]:
Digite n se você estiver em uma nuvem pública.
Edgemicro Key. Press Enter to generate:
Pressione Enter.
Edgemicro Secret. Press Enter to generate:
Pressione Enter.
Edgemicro org-env-config.yaml. Press Enter to generate:
Pressione Enter.
Exemplo de saída:
current nodejs version is v6.9.1 current edgemicro version is 2.5.25 config initialized to /Users/jdoe/.edgemicro/default.yaml Configure for Cloud ****************************************************************************************** Config file is Generated in /Users/jdoe/Work/GITHUB/microgateway_2.5.25_Darwin_x86_64/config directory. Please make changes as desired. *****************************************************************************************
Do you agree to proceed("n","y") [N/y]:
Digite y.
Exemplo de saída:
Configuring Microgateway with key:daacf75dd660d160b801c9117fb1ec0935896615479e39dbbae88be81a2d84 secret:a60fd57c1db9f3a06648173fb541cb9c59188d3b6037a76f490ebf7a6584b0 config:~/.edgemicro/jdoe-test-config.yaml ******************************************************************************************************** kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml ********************************************************************************************************
Execute o comando fornecido na última linha da saída. Este comando
kubectl
injeta o perfil de configuração gerado do Edge Microgateway no Kubernetes:kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
Veja o status da injeção de webhook. Ela não está ativada no momento:
kubectl get namespace -L edgemicro-injection
Exemplo de saída:
NAME STATUS AGE EDGEMICRO-INJECTION default Active 1d edgemicro-system Active 1d kube-public Active 1d kube-system Active 1d
Execute este comando para ativar a injeção do webhook:
kubectl label namespace default edgemicro-injection=enabled
Confira o status da injeção de webhook novamente. Observe que agora ele está ativado:
kubectl get namespace -L edgemicro-injection
Exemplo de saída:
NAME STATUS AGE EDGEMICRO-INJECTION default Active 1d enabled edgemicro-system Active 1d kube-public Active 1d kube-system Active 1d
Implantar o serviço de teste
Agora, reimplante o serviço de teste. O Edge Microgateway será injetado automaticamente ao pod do serviço.
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
Confirme se o Edge Microgateway foi injetado no pod junto com o teste serviço:
kubectl get pods --namespace=default --watch
Exemplo de saída:
NAME READY STATUS RESTARTS AGE
helloworld-6987878fc4-pkw8h 0/2 PodInitializing 0 12s
helloworld-6987878fc4-pkw8h 2/2 Running 0 26s
Quando o status mudar para Running
, pressione ctrl-c
para sair do comando.
Agora está tudo pronto para testar a implantação automática de arquivo secundário do Edge Microgateway. Acessar Teste o proxy para ver as etapas detalhadas.
Testar o proxy
Com a implantação do arquivo secundário, um proxy de API para seu serviço é criado automaticamente para você. Você não é necessário criar uma política proxy.
Encontre o endereço IP de entrada
Com o IP externo da Entrada, é possível chamar o serviço 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 gateway * 35.238.13.54 80 1m
Copie o valor
EXTERNAL-IP
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 gateway --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
Chame o serviço:
curl $GATEWAY_IP
Saída:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
Em seguida, você vai resolver o erro de autorização ausente configurando um produto de API e um app de desenvolvedor. no Edge para gerar uma chave de API válida. Quando você adiciona a chave a uma autorização cabeçalho para a chamada de API, a chamada será bem-sucedida e você não verá esse erro.
Criar componentes no Apigee Edge
Em seguida, crie um produto de API e um app para desenvolvedores na Apigee Edge.
Criar um produto da API
- Faça login no Apigee Edge.
- Selecione Publicar > Produtos da API no menu de navegação lateral.
- Clique em + Produto da API. A página do produto é exibida.
Preencha a página do produto da seguinte forma. Para os campos que não são mencionados abaixo, pode usar os valores padrão. Não salve até receber uma instrução para fazer isso.
Nome hello-world-product
Nome de exibição Edge Micro hello product
Ambiente test
Na seção "Caminho", clique em + Recurso personalizado.
Adicione o caminho
/
.Clique em + Recurso personalizado novamente e adicione o caminho
/**
Na seção "API Proxies", clique em + API Proxy e adicione edgemicro-auth.
Salve o produto da API.
Criar um app do desenvolvedor
- Selecione Apps no menu de navegação lateral.
- Clique em + Aplicativo. A página "Detalhes do app do desenvolvedor" vai aparecer.
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 um desenvolvedor no menu suspenso. Na seção "Credenciais", clique em + Produto e selecione o
hello-world-product
que você acabou de criar.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 Show ao lado de Consumer Key.
Copie o valor da chave do cliente. Esse valor é a Chave de API que você usará para fazer chamadas de API seguras para o serviço
helloworld
.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.
Chamar a API
Depois que as alterações de configuração forem enviadas para o microgateway, será possível execute os testes a seguir.
Chame a API sem uma chave de API. Você vai receber uma mensagem de erro, como mostrado abaixo:
curl $GATEWAY_IP
Saída esperada:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
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 necessária para chamar o proxy de teste:
curl -H 'x-api-key:your-edge-api-key' $GATEWAY_IP
Exemplo:
curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP
Saída:
Hello world
O "Hello World" resposta é retornada pelo serviço helloworld implantado ao pod. A chamada para esse serviço passou primeiro pelo Edge Microgateway, onde a autenticação foi realizada. Se aparecer a mensagem "Hello world" resposta, você configurou o Edge Microgateway com sucesso para função como um proxy sidecar no pod de serviço helloworld.
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.