Implante um gateway auto-hospedado para o Kubernetes com YAML

APLICA-SE A: Desenvolvedor | Premium

Este artigo descreve as etapas para implantar o componente de gateway auto-hospedado do Gerenciamento de API do Azure em um cluster do Kubernetes.

Importante

O suporte para as imagens de contêiner do gateway auto-hospedado versão 0 e versão 1 do Gerenciamento de API do Azure termina em 1º de outubro de 2023, acompanhado da API de Configuração correspondente v1. Use nosso guia de migração para usar o gateway auto-hospedado v2.0.0 ou superior com a API de Configuração v2. Saiba mais em nossa documentação de reprovação

Observação

Você também pode implantar o gateway auto-hospedado em um cluster do Kubernetes habilitado para o Azure Arc como uma extensão de cluster.

Pré-requisitos

Implantar para o Kubernetes

Dica

As etapas a seguir implantam o gateway auto-hospedado no Kubernetes e habilitam a autenticação na instância Gerenciamento de API usando um token de acesso de gateway (chave de autenticação). Você também pode implantar o gateway auto-hospedado no Kubernetes e habilitar a autenticação para a instância de Gerenciamento de API usando Microsoft Entra ID.

  1. Selecione Gateways em Implantação e infraestrutura.
  2. Selecione o recurso de gateway auto-hospedado que você deseja implantar.
  3. Selecione Implantação.
  4. Um token de acesso na caixa de texto Token foi gerado automaticamente para você, com base nos valores padrão de Expiração e Chave secreta. Se necessário, escolha valores em um ou ambos os controles para gerar um novo token.
  5. Selecione a guia Kubernetes em Scripts de implantação.
  6. Selecione o link do arquivo <gateway-name>.yml e baixe o arquivo YAML.
  7. Selecione o ícone copiar no canto inferior direito da caixa de texto Implantar para salvar os comandos kubectl na área de transferência.
  8. Ao usar o AKS (Serviço de Kubernetes do Azure), execute az aks get-credentials --resource-group <resource-group-name> --name <resource-name> --admin em uma nova sessão do terminal.
  9. Execute os comandos para criar os objetos de Kubernetes necessários no namespace padrão e inicie os pods de gateway auto-hospedado por meio da imagem de contêiner baixada do Microsoft Artifact Registry.
    • A primeira etapa cria um segredo do Kubernetes que contém o token de acesso gerado na etapa 4. Em seguida, ela cria uma implantação do Kubernetes para o gateway auto-hospedado que usa um ConfigMap com a configuração do gateway.

Confirme se o gateway está em execução

  1. Execute o comando a seguir para verificar se a implantação foi bem-sucedida. Poderá levar algum tempo para que todos os objetos sejam criados e os pods sejam inicializados.

    kubectl get deployments
    

    Isso retornará

    NAME             READY   UP-TO-DATE   AVAILABLE   AGE
    <gateway-name>   1/1     1            1           18s
    
  2. Execute o comando a seguir para verificar se os serviços foram criados com êxito. Os seus IPs de serviço e as portas serão diferentes.

    kubectl get services
    

    Isso retornará

    NAME                                TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
    <gateway-name>-live-traffic         ClusterIP      None            <none>        4290/UDP,4291/UDP   9m1s
    <gateway-name>-instance-discovery   LoadBalancer   10.99.236.168   <pending>     80:31620/TCP,443:30456/TCP   9m1s
    
  3. Volte ao portal do Azure e selecione Visão Geral.

  4. Confirme se o status mostra uma marca de seleção verde seguida por uma contagem de nós que corresponde ao número de réplicas especificado no arquivo YAML. Esse status significa que os pods do gateway auto-hospedado implantados estão se comunicando com êxito com o serviço do Gerenciamento de API e têm uma "pulsação" regular. Captura de tela mostrando o status do gateway auto-hospedado no portal.

Dica

  • Execute o comando kubectl logs deployment/<gateway-name> para exibir os logs de um pod selecionado aleatoriamente se houver mais de um.
  • Execute kubectl logs -h para obter um conjunto completo de opções de comando, por exemplo, como exibir logs para um pod ou contêiner específico.

Próximas etapas