Tutorial: configurar um contêiner sidecar para contêiner personalizado no Serviço de Aplicativo do Azure (versão prévia)
Neste tutorial, você adicionará o coletor OpenTelemetry como um contêiner sidecar a um aplicativo de contêiner personalizado do Linux no Serviço de Aplicativo do Azure.
No Serviço de Aplicativo do Azure, adicione até quatro contêineres sidecar, para cada aplicativo de contêiner personalizado habilitado para sidecar. Os contêineres sidecar permitem implantar serviços e recursos extras em seu aplicativo de contêiner sem torná-los firmemente acoplados ao contêiner principal do aplicativo. Por exemplo, você pode adicionar serviços de monitoramento, registro em log, configuração e rede como contêineres sidecar. Um sidecar do coletor OpenTelemetry é um desses exemplos de monitoramento.
Para obter mais informações sobre sidecars, consulte o Padrão sidecar.
Observação
Para o período de versão prévia, o suporte ao sidecar deve ser habilitado na criação do aplicativo. No momento, não há como habilitar o suporte de sidecar para um aplicativo existente.
Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
1. Configurar os recursos necessários
Primeiro, você cria os recursos que o tutorial usa (para obter mais informações, consulte a Visão geral do Cloud Shell). Eles são usados para esse cenário específico e não são necessários para contêineres sidecar em geral.
No Azure Cloud Shell, execute os seguintes comandos:
git clone https://github.com/Azure-Samples/app-service-sidecar-tutorial-prereqs cd app-service-sidecar-tutorial-prereqs azd provision
Quando solicitado, forneça o nome do ambiente, a assinatura e a região desejadas. Por exemplo:
- Nome do ambiente: my-sidecar-env
- Assinatura: sua assinatura
- Região: (Europa) Oeste da Europa
Ao concluir a implantação, você deverá visualizar a seguinte saída:
APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=...;IngestionEndpoint=...;LiveEndpoint=... Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/.../resourceGroups/...
Abra o link do grupo de recursos em uma guia do navegador. Você precisará usar a cadeia de conexão mais tarde.
Observação
azd provision
usa os modelos incluídos para criar os seguintes recursos do Azure:- Um grupo de recursos
- Um registro de contêiner com duas imagens implantadas:
- Uma imagem Nginx com o módulo OpenTelemetry.
- Uma imagem do coletor OpenTelemetry, configurada para exportar ao Azure Monitor.
- Um espaço de trabalho do análise de logs
- UmComponente do Application Insights
2. Criar um aplicativo habilitado para sidecar
Na página de gerenciamento do grupo de recursos, selecione Criar.
Pesquise por aplicativo Web e selecione a seta para baixo em Criar e selecione Aplicativo Web.
Configure o painel Básico da seguinte maneira:
- Nome: um nome exclusivo
- Publicar: Contêiner
- Sistema Operacional: Linux
- Região: mesma região que a que você escolheu com
azd provision
- Plano do Linux: um novo plano do Serviço de Aplicativo
Selecione Contêiner. Configure o painel Contêiner da seguinte maneira:
- Suporte ao sidecar: habilitado
- Fonte da imagem: Registro de Contêiner do Azure
- Registro: o registro criado por
azd provision
- Imagem: nginx
- Marca: mais recente
- Porta: 80
Observação
Essas configurações são configuradas de forma diferente em aplicativos habilitados para sidecar. Para obter mais informações, consulte Diferenças para aplicativos habilitados para sidecar.
Selecione Examinar + criare Criar.
Assim que a implantação for concluída, selecione Ir para o recurso.
Em uma nova guia do navegador, navegue até
https://<app-name>.azurewebsites.net
e confira a página padrão do Nginx.
3. Adicione um contêiner sidecar
Nesta seção, você adicionará um contêiner sidecar ao seu aplicativo de contêiner personalizado.
Na página de gerenciamento do aplicativo, no menu à esquerda, selecione Centro de Implantação.
O centro de implantação mostra todos os contêineres no aplicativo. No momento, ele só tem o contêiner principal.
Selecione Adicionar e configure o novo contêiner da seguinte maneira:
- Nome: coletor Otel
- Fonte da imagem: Registro de Contêiner do Azure
- Registro: o registro criado por
azd provision
- Imagem: coletor Otel
- Marca: mais recente
- Porta: 4317
A porta 4317 é a porta padrão usada pelo contêiner de amostra, para receber dados OpenTelemetry. Ele é acessível de qualquer outro contêiner no aplicativo em
localhost:4317
. É exatamente assim que o contêiner Nginx envia dados para o sidecar (consulte a configuração do módulo OpenTelemetry para a imagem Nginx de amostra).Escolha Aplicar.
Agora você deve visualizar dois contêineres no centro de implantação. O contêiner principal está marcado como Principal e o contêiner sidecar está marcado como Sidecar. Cada aplicativo deve ter um contêiner principal, mas pode ter vários contêineres sidecar.
4. Configurar variáveis de ambiente
Para o cenário de exemplo, o sidecar do coletor Otel é configurado para exportar os dados OpenTelemetry para o Azure Monitor, mas precisa da cadeia de conexão como uma variável de ambiente (consulte o arquivo de configuração OpenTelemetry para a imagem do coletor Otel).
Você configura variáveis de ambiente para os contêineres, como qualquer aplicativo do Serviço de Aplicativo, definindo as configurações do aplicativo. As configurações do aplicativo são acessíveis a todos os contêineres no aplicativo.
Na página de gerenciamento do aplicativo, no menu à esquerda, selecione Configuração.
Adicione uma configuração de aplicativo selecionando Nova configuração de aplicativo e configure-a da seguinte maneira:
- Nome: APPLICATIONINSIGHTS_CONNECTION_STRING
- Valor: a cadeia de conexão na saída de
azd provision
Selecione Salvar e Continuar.
Observação
Determinadas configurações de aplicativo não se aplicam a aplicativos habilitados para sidecar. Para obter mais informações, consulte Diferenças para aplicativos habilitados para sidecar
5. Verificar no Application Insights
O sidecar do coletor Otel deve exportar dados para o Application Insights agora.
De volta à guia do navegador para
https://<app-name>.azurewebsites.net
, atualizar a página algumas vezes para gerar algumas solicitações da Web.Volte para a página de visão geral do grupo de recursos, selecione o recurso do Application Insights. Agora você deve visualizar alguns dados nos gráficos padrão.
Observação
Neste cenário de monitoramento muito comum, o Application Insights é apenas um dos destinos do OpenTelemetry que você poderá usar, como Jaeger, Prometheus e Zipkin.
Limpar os recursos
Quando você não precisar mais do ambiente, poderá excluir o grupo de recursos, o serviço de aplicativo e todos os recursos relacionados. Basta executar este comando no Cloud Shell, no repositório clonado:
azd down
Diferenças para aplicativos habilitados para sidecar
Você configura aplicativos habilitados para sidecar de forma diferente dos aplicativos que não estão habilitados para sidecar. Especificamente, você não define o contêiner principal e os sidecars com as configurações do aplicativo, mas diretamente nas propriedades do recurso. Essas configurações de aplicativo não se aplicam a aplicativos habilitados para sidecar:
- Configurações de autenticação do Registro:
DOCKER_REGISTRY_SERVER_URL
,DOCKER_REGISTRY_SERVER_PASSWORD
eDOCKER_REGISTRY_SERVER_USERNAME
. - Porta do contêiner:
WEBSITES_PORT