Todos os produtos
Search
Central de documentação

Platform For AI:Health checks

Última atualização: Sep 23, 2026

As verificações de integridade do EAS usam os mecanismos de probe do Kubernetes para detectar e recuperar automaticamente contêineres não íntegros, garantindo que apenas instâncias íntegras recebam tráfego.

Limitações

As verificações de integridade estão disponíveis apenas quando você implanta um service usando uma imagem personalizada que inclui a lógica de verificação de integridade.

Como funciona

As verificações de integridade do EAS usam os mecanismos de probe do Kubernetes para detectar e gerencie a integridade do service. O EAS oferece suporte aos seguintes tipos de probe e métodos de verificação de integridade.

  • Tipos de probe compatíveis:

    Tipo de probe

    Descrição

    Liveness probe

    Determina se um contêiner está em execução. Se o probe detectar um contêiner não íntegro, o kubelet encerra o contêiner e aplica a política de reinicialização. Caso um contêiner não tenha uma liveness probe configurada, o kubelet considera o resultado do probe como sempre bem-sucedido.

    Readiness probe

    Determina se um contêiner está pronto para atender requisições. Apenas pods no estado Ready recebem tráfego. A associação entre um Service e seus Endpoints é gerenciada com base na prontidão do pod:

    • Quando o estado Ready de um pod é False, o Kubernetes remove o IP do pod da lista de Endpoints associada ao Service.

    • Quando o estado Ready do pod muda para True, o Kubernetes adiciona o IP do pod de volta à lista de Endpoints.

    Startup probe

    Determina quando um contêiner terminou a inicialização. Use este probe para contêineres de inicialização lenta, para evitar que as verificações de liveness e readiness sejam executadas antes que a inicialização seja concluída, o que resultaria no encerramento prematuro do contêiner.

  • Métodos de verificação de integridade compatíveis:

    Método de verificação de integridade

    Descrição

    http_get

    Envia uma requisição HTTP GET para verificar a integridade e a disponibilidade do service. A verificação é bem-sucedida quando o código de status da resposta está na faixa 2xx ou 3xx.

    tcp_socket

    Tenta abrir uma conexão TCP para verificar a integridade e a disponibilidade do service.

    exec

    Executa um comando especificado dentro do contêiner. O resultado da verificação é determinado pelo código de saída do comando.

Preparar uma imagem personalizada

Encapsule sua lógica de inferência com um framework web. Este exemplo usa o Flask:

import json
from flask import Flask, request, make_response

app = Flask(__name__)

@app.route('/', methods = ['GET','POST'])
def process_handle_func():
    """
       Parse the request body based on actual requirements
    """
    data = request.get_data().decode('utf-8')
    body = json.loads(data)
    res = process(body)
    """
       Set the response based on actual requirements
    """
    response = make_response(res)
    response.status_code = 200
    return response

def process(data):
    """
       Your prediction logic
    """
    return 'result'

if __name__ == '__main__':
    """
    Note: host must be set to 0.0.0.0, otherwise the health check will fail during service deployment.
    port must match the port specified in the JSON configuration file for the deployed service.
    """
    app.run(host='0.0.0.0', port=8000)

Crie um Dockerfile para copiar seu código de inferência e instale os pacotes necessários:

# Python example
FROM registry.cn-shanghai.aliyuncs.com/eas/bashbase-amd64:0.0.1
COPY ./process_code  /eas
RUN /xxx/pip install <packages>
CMD ["/xxx/python", "/eas/xxx/app.py"] 

Para ver as etapas de criação de uma imagem personalizada, consulte Build images on a Container Registry Enterprise Edition instance. Consulte Deploy a custom image para obter as diretrizes de criação de imagens. Como alternativa, salve seu código em um sistema de arquivos NAS ou repositório Git e monte o armazenamento durante a implantação (consulte Storage mounts). Este tópico usa a primeira abordagem para demonstrar a configuração da verificação de integridade em Configure health checks when deploying a service.

Configure verificações de integridade ao implantar um service

Configure verificações de integridade na implantação personalizada

  1. acesse o PAI console, selecione a região de destino na parte superior da página, o workspace de destino à direita e clique em Go to EAS.

  2. Na guia Inference Service, clique em Deploy Service. Na seção Custom Model Deployment, clique em Custom Deployment.

  3. Na seção Environment Information, configure os parâmetros principais a seguir. Para outros parâmetros, consulte Custom deployment.

    Parâmetro

    Descrição

    Image Configuration

    Selecione Image Address e insira o endereço da sua imagem personalizada no campo de texto, por exemplo, registry-vpc.cn-shanghai.aliyuncs.com/xxx/yyy:zzz.

    Command

    O comando de entrypoint do contêiner. Apenas um único comando é compatível — scripts complexos não são permitidos. O comando deve corresponder ao que está definido no seu Dockerfile. Por exemplo: /data/eas/ENV/bin/python /data/eas/app.py.

    Insira o número da porta na qual o contêiner escuta após a inicialização, por exemplo, 8000.

    Importante
    • O mecanismo do EAS escuta nas portas fixas 8080 e 9090. Evite usar essas portas para o seu contêiner.

    • A porta deve corresponder àquela configurada no arquivo xxx.py referenciado no comando de execução.

  4. Na seção Features, expanda o painel Stability guarantee, ative a opção Health Check, configure os parâmetros descritos a seguir e clique em OK.

    Parâmetros de verificação de integridade

    Parâmetro

    Descrição

    Probe Type

    Três tipos de probe são compatíveis:

    • Liveness Probe: Verifica se o contêiner está em execução normalmente.

    • Readiness Probe: Verifica se o contêiner terminou a inicialização e está pronto para processar requisições.

    • Startup Probe: Projetado para aplicações que precisam de mais tempo para inicializar, evitando que contêineres de inicialização lenta sejam marcados incorretamente como com falha.

    Para ver como cada probe funciona, consulte How it works.

    Check Method

    Três métodos de verificação de integridade são compatíveis:

    • http_get: Chama o método HTTP GET usando o endereço IP, a porta e o caminho do contêiner. A verificação é bem-sucedida quando o código de status da resposta está entre 200 (inclusive) e 400 (exclusive).

    • tcp_socket: Execute uma verificação tcp usando o endereço IP e a porta do contêiner. A verificação é bem-sucedida quando é possível estabelecer uma conexão tcp.

    • exec (Custom Health Check): Execute um comando especificado dentro do contêiner. A verificação é bem-sucedida quando o comando retorna o código 0.

    Call Path

    Disponível apenas quando você defina o Check Method como http_get.

    A URL do servidor HTTP a ser verificada. O prefixo é http://localhost. O sufixo do caminho é personalizável e tem / como padrão.

    Port Number

    Disponível apenas quando você defina o Check Method como http_get ou tcp_socket.

    A porta a ser verificada, por exemplo, 8000.

    Command

    Disponível apenas quando você defina o Check Method como exec.

    Insira o comando a ser executado. O console converte automaticamente o comando para o formato necessário e o salva no JSON de implantação.

    Latency for Check Initialization

    O atraso antes da execução da primeira verificação de integridade após a inicialização do contêiner. O padrão é 15 segundos.

    Check Interval

    A frequência de execução das verificações de integridade. O padrão é 10 segundos. Uma frequência alta aumenta a sobrecarga do pod; uma frequência baixa atrasa a detecção de erros no contêiner.

    Check Timeout Period

    O tempo limite para cada verificação de integridade. O padrão é 1 segundo. Uma verificação que excede essa duração é considerada uma falha.

    Check Success Threshold

    O número de verificações bem-sucedidas consecutivas necessárias para marcar um contêiner anteriormente não íntegro como íntegro. O padrão é 3 para readiness probes e 1 para liveness e startup probes.

    Check Failure Threshold

    O número de falhas consecutivas necessárias para marcar um contêiner anteriormente íntegro como não íntegro. O padrão é 1.

  5. Clique em Deploy.

Configure verificações de integridade na implantação JSON

Crie um arquivo JSON chamado service.json. Confira um exemplo de arquivo abaixo.

{
    "metadata": {
        "name": "test",
        "instance": 1,
        "enable_webservice": true
    },
    "cloud": {
        "computing": {
            "instance_type": "ml.gu7i.c16m60.1-gu30"
        }
    },
    "containers": [
        {
            "image":"registry-vpc.cn-shanghai.aliyuncs.com/xxx/yyy:zzz",
            "env":[
                {
                    "name":"VAR_NAME",
                    "value":"var_value"
                }
            ],
            "liveness_check":{
                "http_get":{
                    "path":"/",
                    "port":8000
                },
                "initial_delay_seconds":3,
                "period_seconds":3,
                "timeout_seconds":1,
                "success_threshold":1,
                "failure_threshold":4
            },
            "command":"/data/eas/ENV/bin/python /data/eas/app1.py",
            "port":8000
        }
    ]
}

Os parâmetros chave estão descritos na tabela a seguir. Para outros parâmetros, consulte JSON deployment.

Parâmetro

Descrição

image

O endereço da imagem personalizada usada para implantar o service de modelo.

O EAS não permite acesso à rede pública. Use um endereço de registro interno da VPC, por exemplo: registry-vpc.cn-shanghai.aliyuncs.com/xxx/yyy:zzz.

env

name

O nome de uma variável de ambiente passada para o contêiner em tempo de execução.

value

O valor da variável de ambiente.

command

O comando de entrypoint do contêiner. Apenas um único comando é compatível — scripts complexos não são permitidos. Por exemplo: /data/eas/ENV/bin/python /data/eas/app.py.

port

A porta de rede na qual o processo dentro do contêiner escuta, por exemplo, 8000.

Importante

A porta deve corresponder à porta configurada no arquivo xxx.py referenciado no campo command.

liveness_check

Nota

Especifica a liveness probe como o tipo de probe de verificação de integridade. Você também pode configurá-la como health_check (readiness probe) ou startup_check (startup probe).

http_get

Envia uma requisição HTTP GET para a porta 8000. Subparâmetros:

  • http_get.path: A URL do servidor HTTP a ser verificada. O prefixo é http://localhost. O sufixo do caminho é personalizável e tem / como padrão.

  • http_get.port: A porta do servidor HTTP a ser verificada.

Dois métodos adicionais de verificação de integridade são compatíveis:

  • tcp_socket: Execute uma verificação tcp usando o endereço IP e a porta do contêiner. A verificação é bem-sucedida quando é possível estabelecer uma conexão tcp. Configuração:

    "tcp_socket":{
            "port":8000
        }
  • exec: Execute um comando especificado dentro do contêiner. A verificação é bem-sucedida quando o comando retorna o código 0. Configuração:

    "exec":{
            "command":[
                "your_script",
                "with_args"
            ]
        }

initial_delay_seconds

O atraso antes da execução da primeira verificação de integridade após a inicialização do contêiner. O padrão é 0 segundos.

period_seconds

A frequência de execução das verificações de integridade. O padrão é 10 segundos. Uma frequência alta aumenta a sobrecarga do pod; uma frequência baixa atrasa a detecção de erros no contêiner.

timeout_seconds

O tempo limite para cada verificação de integridade. O padrão é 1 segundo. Uma verificação que excede essa duração é considerada uma falha.

success_threshold

O número de verificações bem-sucedidas consecutivas necessárias para marcar um contêiner anteriormente não íntegro como íntegro. O padrão é 3 para readiness probes e 1 para liveness e startup probes.

failure_threshold

O número de falhas consecutivas necessárias para marcar um contêiner anteriormente íntegro como não íntegro. O padrão é 1.