Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As investigações de integridade dos Aplicativos de Contêiner do Azure permitem que o runtime de Aplicativos de Contêiner verifique regularmente o status dos aplicativos de contêiner.
Você pode configurar investigações usando TCP ou HTTP(S) exclusivamente.
Os Aplicativos de Contêiner do Azure dão suporte às seguintes sondas:
| Sonda | Descrição |
|---|---|
| Inicialização | Verifica se o seu aplicativo inicia com êxito. Essa verificação é separada da sonda de atividade e é executada durante a fase inicial de execução do seu aplicativo. |
| Vivacidade | Verifica se o aplicativo ainda está em execução e responsivo. |
| Preparação | Verifica se uma réplica está pronta para lidar com solicitações de entrada. |
Para obter uma lista completa das especificações de sondagem com suporte no Azure Container Apps, consulte as especificações da API REST do Azure.
Sondas HTTP
As sondas HTTP permitem implementar lógica personalizada para verificar o status das dependências da aplicação antes de relatar um status saudável.
Configure seus pontos de extremidade de investigação de integridade para responder com um código de status HTTP maior ou igual a 200 e menor que 400 para indicar êxito. Qualquer outro código de resposta fora desse intervalo indica uma falha.
O exemplo a seguir mostra como implementar um endpoint de liveness em JavaScript.
const express = require('express');
const app = express();
app.get('/liveness', (req, res) => {
let isSystemStable = false;
// check for database availability
// check filesystem structure
// etc.
// set isSystemStable to true if all checks pass
if (isSystemStable) {
res.status(200); // Success
} else {
res.status(503); // Service unavailable
}
})
Investigações de TCP
As sondas de TCP aguardam o estabelecimento de uma conexão com o servidor para indicar sucesso. A investigação falhará se não conseguir estabelecer uma conexão com seu aplicativo.
Restrições
- Você pode adicionar apenas uma de cada tipo de sonda em cada contêiner.
-
execsondas não são suportadas. - Os valores de porta devem ser inteiros; Não há suporte para portas nomeadas.
- Não há suporte para gRPC.
Exemplos
A listagem de código a seguir mostra como definir probes de integridade para seus contêineres.
Os marcadores ... indicam código omitido. Para obter detalhes completos do modelo ARM, consulte a especificação da API do modelo ARM dos Aplicativos de Contêiner.
{
...
"containers":[
{
"image":"nginx",
"name":"web",
"probes": [
{
"type": "Liveness",
"httpGet": {
"path": "/health",
"port": 8080,
"httpHeaders": [
{
"name": "Custom-Header",
"value": "liveness probe"
}]
},
"initialDelaySeconds": 7,
"periodSeconds": 3
},
{
"type": "Readiness",
"tcpSocket": {
"port": 8081
},
"initialDelaySeconds": 10,
"periodSeconds": 3
},
{
"type": "Startup",
"httpGet": {
"path": "/startup",
"port": 8080,
"httpHeaders": [
{
"name": "Custom-Header",
"value": "startup probe"
}]
},
"initialDelaySeconds": 3,
"periodSeconds": 3
}]
}]
...
}
A configuração opcional failureThreshold define o número de tentativas que os Aplicativos de Contêiner fazem para executar a sonda caso a execução falhe. As tentativas que excedem a quantidade failureThreshold causam resultados diferentes para cada tipo de investigação.
Configuração padrão
Caso habilite a entrada, o portal adicionará automaticamente as seguintes investigações padrão ao contêiner do aplicativo principal, caso não defina cada tipo, exceto para perfis de carga de trabalho de GPU (tanto dedicados quanto de consumo). O portal não adiciona automaticamente investigações padrão a contêineres sidecar.
| Tipo de sonda | Valores padrão |
|---|---|
| Inicialização | Protocolo: TCP Porta: porta de destino de entrada Tempo limite: 3 segundos Período: 1 segundo Atraso inicial: 1 segundo Limite de êxito: um Limite de falhas: 240 |
| Vivacidade | Protocolo: TCP Porta: porta de destino de entrada |
| Preparação | Protocolo: TCP Porta: porta de destino de entrada Tempo limite: 5 segundos Período: 5 segundos Atraso inicial: 3 segundos Limite de êxito: um Limite de falhas: 48 |
Se você executar seu aplicativo de contêiner em modo de revisão múltipla, após implantar uma revisão, aguarde até que as sondas de prontidão confirmem sucesso antes de mudar o tráfego para essa revisão. No modo de revisão única, o tráfego muda automaticamente assim que a investigação de preparação retorna um estado bem-sucedido.
Um estado de revisão aparece como não íntegro se uma das respectivas réplicas apresentar falha na sonda do grau de prontidão, mesmo que todas as outras réplicas na revisão estejam íntegras. A plataforma Aplicativos de Contêiner reinicia a réplica em questão até que esteja íntegra novamente ou o limite de falhas seja excedido. Se o limite de falha for excedido, tente reiniciar a revisão, mas isso pode significar que a revisão não está configurada corretamente.
Se o aplicativo exigir um longo tempo de inicialização, ajuste as configurações da sonda para evitar que o contêiner seja reiniciado (ou marcado como não saudável) antes de estar pronto. Personalizar a configuração da sonda ajuda a assegurar que seu aplicativo tenha tempo suficiente para iniciar sem acionar reinicializações desnecessárias.
O exemplo a seguir demonstra como configurar as sondas de vivacidade e prontidão para estender o tempo de inicialização.
"probes": [
{
"type": "Liveness",
"failureThreshold": 3,
"periodSeconds": 10,
"successThreshold": 1,
"tcpSocket": {
"port": 80
},
"timeoutSeconds": 1
},
{
"type": "Readiness",
"failureThreshold": 48,
"initialDelaySeconds": 3,
"periodSeconds": 5,
"successThreshold": 1,
"tcpSocket": {
"port": 80
},
"timeoutSeconds": 5
}]