Todos os produtos
Search
Central de documentação

Container Compute Service:Create a stateless workload Deployment

Última atualização: Oct 16, 2026

Container Compute Service (ACS) permite criar aplicações sem estado utilizando imagens de container, templates YAML de orquestração ou ferramentas de linha de comando kubectl. Este tópico utiliza uma aplicação Nginx como exemplo para demonstrar como criar uma aplicação sem estado em um cluster ACS.

Console

Create from image

Etapa 1: Configurar informações básicas da aplicação

  1. Faça login no console do ACS. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, escolha Workloads > Deployments.

  3. Na página Deployments, clique em Create from Image.

  4. No assistente Basic Information, configure as definições básicas da sua aplicação.

    Parâmetro

    Descrição

    Application Name

    Insira um nome para a aplicação.

    Replicas:

    Número de pods na aplicação. O valor padrão é 2.

    Workloads

    Selecione Deployment.

    Label

    Adicione uma label para identificar esta aplicação.

    Annotations

    Adicione uma annotation à aplicação.

    Instance Type

    Selecione um tipo de computação. Para detalhes sobre os tipos de computação, consulte Visão geral das instâncias de pod do ACS.

    QoS Type

    Selecione uma classe de Qualidade de Serviço (QoS).

    Correspondência entre Tipo de Computação e Qualidade de Poder de Computação

    Tipo de computação (label)

    Classes de qualidade de poder de computação suportadas (labels)

    Uso geral (general-purpose)

    Padrão (default), BestEffort (best-effort)

    Otimizado para desempenho (performance)

    Padrão (default), BestEffort (best-effort)

    Tipo GPU (gpu)

    Padrão (default), BestEffort (best-effort)

    GPU de rede de alto desempenho (gpu-hpn)

    Padrão (default)

    Para mais informações, consulte Definições de classes QoS.

  5. Clique em Next para ir ao assistente Container.

Etapa 2: Configurar containers

Na página do assistente Container, configure a imagem do container, recursos, portas, variáveis de ambiente, verificações de integridade, ciclo de vida, volumes e logs.

Nota

Para adicionar múltiplos containers ao pod, clique em Add Container ao lado da aba Container 1.

  1. Na seção General, conclua a configuração básica do container.

    Parâmetro

    Descrição

    Image Name

    • Selecionar uma imagem

      Clique em Select Image para escolher a imagem necessária.

      • Container Registry Enterprise Edition: Selecione uma imagem da Enterprise Edition hospedada no Alibaba Cloud Container Registry (ACR). Você deve selecionar a região e a instância do ACR onde a imagem reside. Para mais informações sobre o ACR, consulte O que é o Container Registry?.

      • Container Registry Personal Edition (deve ser ativado primeiro): Selecione uma imagem da Personal Edition hospedada no ACR. É necessário selecionar a região e a instância do ACR onde a imagem está localizada.

      • Artifact center: Inclui imagens base de SO para aplicações em container, imagens de runtime de linguagem e imagens relacionadas a IA/big data. Este exemplo usa uma imagem Nginx do Artifact Center. Para mais informações, consulte Artifact Center.

    • (Opcional) Definir a política de pull da imagem

      Na lista suspensa Image Pull Policy, selecione uma política de pull. Por padrão, nenhuma política é definida e o Kubernetes usa IfNotPresent.

      • IfNotPresent: Se a imagem já existir localmente (puxada anteriormente para o host), ela não será baixada novamente. Caso contrário, a imagem será baixada.

      • Always: Sempre baixa a imagem durante a implantação ou expansão, ignorando qualquer cópia local.

      • Never: Usa apenas a imagem local.

    • (Opcional) Definir um secret de pull de imagem

      Clique em Set Image Pull Secret para acessar imagens privadas com segurança.

      • Para instâncias do ACR Personal Edition, você pode baixar imagens de container definindo um secret de pull de imagem. Para mais informações, consulte Gerenciar secrets.

      • Para instâncias do ACR Enterprise Edition, é possível baixar imagens sem senhas usando o add-on passwordless. Para detalhes, consulte Baixar imagens do ACR sem senhas.

    Required Resources

    Defina cotas de recursos para o container.

    • CPU: Especifique os valores de solicitação e limite de CPU. Por padrão, a solicitação é igual ao limite e o faturamento utiliza o método pay-as-you-go. Se você definir um limite diferente via YAML, a solicitação será sobrescrita para corresponder ao limite. Para detalhes, consulte Especificações de recursos.

    • Memory: Especifique os valores de solicitação e limite de memória. Por padrão, a solicitação é igual ao limite e o faturamento utiliza o método pay-as-you-go. Se você definir um limite diferente via YAML, a solicitação será sobrescrita para corresponder ao limite. Para detalhes, consulte Especificações de recursos.

    Interactive Session

    (Opcional) Configure as opções de inicialização do container.

    • stdin: Envia a entrada do console para o container.

    • tty: Anexa o console de entrada padrão como entrada de console do container.

    Nota

    Geralmente, tanto stdin quanto tty são selecionados juntos para vincular o terminal (tty) à entrada padrão (stdin) do container. Por exemplo, um programa interativo lê a entrada do usuário de stdin e exibe a saída no terminal.

    Init Containers

    (Opcional) Selecione esta opção para criar um init container.

    Init containers fornecem um mecanismo para bloquear ou atrasar a inicialização dos containers de aplicação até que sejam bem-sucedidos. Após a execução bem-sucedida, os containers de aplicação no pod iniciam em paralelo. Por exemplo, você pode usar init containers para verificar a disponibilidade de serviços dependentes. Init containers podem incluir utilitários ou scripts de instalação não presentes na imagem da aplicação para inicializar o ambiente de execução — por exemplo, definindo parâmetros de kernel ou gerando arquivos de configuração. Para mais informações, consulte Init Containers.

  2. (Opcional) Na seção Ports, clique em Add para configurar as portas do container.

    Parâmetro

    Descrição

    Name

    Especifique um nome para a porta do container.

    Container Port

    Especifique a porta de acesso exposta do container. O número da porta deve estar entre 1 e 65535.

    Protocol

    Os protocolos suportados são TCP e UDP.

  3. (Opcional) Na seção Environments, clique em Add para configurar variáveis de ambiente.

    Você pode configurar variáveis de ambiente para o pod usando pares chave-valor para adicionar sinalizadores de ambiente ou passar configurações. Para mais informações, consulte Variáveis de Ambiente do Pod.

    Parâmetro

    Descrição

    Type

    Defina o tipo da variável de ambiente:

    • Custom

    • ConfigMaps

    • Secrets

    • Value/ValueFrom

    • ResourceFieldRef

    ConfigMap e Secret suportam a referência a todos os arquivos.

    Este exemplo usa um Secret. Ao selecionar o tipo Secrets e escolher um Secret alvo, todos os arquivos nesse Secret são referenciados por padrão. Após selecionar Secret, insira um Variable Name e selecione o nome do Secret correspondente e a chave nas duas listas suspensas à direita.

    O YAML correspondente referencia todo o Secret:

    envFrom:
      - secretRef:
          name: test

    Variable Key

    Defina o nome da variável de ambiente.

    Value/ValueFrom

    Defina o valor da variável referenciada.

  4. (Opcional) Na seção Health Check, ative Liveness, Readiness e Startup conforme necessário.

    • Liveness: Usado para determinar se um container está executando normalmente. Se um número especificado de verificações falhar, o kubelet reinicia o container. As sondas de Liveness podem detectar problemas que fazem com que um container permaneça em estado de execução, mas falhe em responder, como um deadlock.

    • Readiness: Usado para determinar se um container está pronto para aceitar tráfego. Um pod é anexado a um backend de service somente após sua sonda de readiness ser bem-sucedida.

    • Startup: Executado apenas quando o container inicia para verificar se ele foi iniciado com sucesso. A Liveness Probe e a Readiness Probe são executadas somente após a sonda de startup ser bem-sucedida.

    Para mais informações, consulte Configurar sondas de liveness, readiness e startup.

    Parâmetro

    Descrição

    HTTP

    Envia uma requisição HTTP GET para o container. Os parâmetros suportados incluem:

    • Protocol: HTTP/HTTPS.

    • Path: O caminho para acessar o servidor HTTP.

    • Port: A porta exposta do container ou nome da porta. O número da porta deve estar entre 1 e 65535.

    • HTTP Header: Cabeçalhos de requisição personalizados na requisição HTTP. O HTTP permite cabeçalhos duplicados. Configure-os como pares chave-valor.

    • Initial Delay (s): O parâmetro initialDelaySeconds especifica quantos segundos aguardar após o início do container antes de realizar a primeira sonda. O padrão é 3 segundos.

    • Period (s): O parâmetro periodSeconds especifica o intervalo de tempo entre as sondas. O padrão é 10 segundos. O mínimo é 1 segundo.

    • Timeout (s): O parâmetro timeoutSeconds especifica a duração do tempo limite da sonda. O padrão é 1 segundo. O mínimo é 1 segundo.

    • Healthy Threshold: O número mínimo de sondas consecutivas bem-sucedidas necessárias após uma falha para marcar o container como saudável. O padrão é 1. O mínimo é 1. Para sondas de liveness, isso deve ser 1.

    • Unhealthy Threshold: O número mínimo de sondas consecutivas com falha necessárias após um sucesso para marcar o container como não saudável. O padrão é 3. O mínimo é 1.

    TCP

    Abre um socket TCP para o container. O Kubelet tenta abrir um socket na porta especificada. Se for bem-sucedido, o container é considerado saudável; caso contrário, é marcado como falho. Os parâmetros suportados incluem:

    • Port: A porta exposta do container ou nome da porta. O número da porta deve estar entre 1 e 65535.

    • Initial Delay (s): O parâmetro initialDelaySeconds especifica quantos segundos aguardar após o início do container antes de realizar a primeira sonda. O padrão é 15 segundos.

    • Period (s): O parâmetro periodSeconds especifica o intervalo de tempo entre as sondas. O padrão é 10 segundos. O mínimo é 1 segundo.

    • Timeout (s): O parâmetro timeoutSeconds especifica a duração do tempo limite da sonda. O padrão é 1 segundo. O mínimo é 1 segundo.

    • Healthy Threshold: O número mínimo de sondas consecutivas bem-sucedidas necessárias após uma falha para marcar o container como saudável. O padrão é 1. O mínimo é 1. Para sondas de liveness, isso deve ser 1.

    • Unhealthy Threshold: O número mínimo de sondas consecutivas com falha necessárias após um sucesso para marcar o container como não saudável. O padrão é 3. O mínimo é 1.

    Command

    Executa um comando dentro do container para verificar sua integridade. Os parâmetros suportados incluem:

    • Command: O comando usado para verificar a integridade do container.

    • Initial Delay (s): O parâmetro initialDelaySeconds especifica quantos segundos aguardar após o início do container antes de realizar a primeira sonda. O padrão é 5 segundos.

    • Period (s): O parâmetro periodSeconds especifica o intervalo de tempo entre as sondas. O padrão é 10 segundos. O mínimo é 1 segundo.

    • Timeout (s): O parâmetro timeoutSeconds especifica a duração do tempo limite da sonda. O padrão é 1 segundo. O mínimo é 1 segundo.

    • Healthy Threshold: O número mínimo de sondas consecutivas bem-sucedidas necessárias após uma falha para marcar o container como saudável. O padrão é 1. O mínimo é 1. Para sondas de liveness, isso deve ser 1.

    • Unhealthy Threshold: O número mínimo de sondas consecutivas com falha necessárias após um sucesso para marcar o container como não saudável. O padrão é 3. O mínimo é 1.

  5. (Opcional) Na seção Lifecycle, configure o ciclo de vida do container.

    Você pode configurar comandos de pré-início, manipuladores pós-início e manipuladores pré-parada para o ciclo de vida do container. Para detalhes, consulte Configurar ciclo de vida.

    Parâmetro

    Descrição

    Start

    Especifique um comando e seus argumentos para executar antes do container iniciar.

    Post-start Hook

    Especifique um comando para executar após o container iniciar.

    Pre-stop Hook

    Especifique um comando para executar antes do container terminar.

  6. (Opcional) Na seção Volume, monte volumes no container.

    • Armazenamento local: Monte ConfigMaps, Secrets ou diretórios temporários em caminhos do container. Para mais informações, consulte volumes.

    • Armazenamento em cloud: Suporta discos em cloud e Network Attached Storage (NAS), entre outros. Para detalhes, consulte Visão geral de armazenamento.

  7. (Opcional) Na seção Log, configure Collection Configuration e Custom Tag.

    Parâmetro

    Descrição

    Configurações de Coleta

    • Logstore: Cria um Logstore correspondente no Simple Log Service para armazenar logs coletados.

    • Log Path in Container (Can be set to stdout): Suporta stdout e logs de texto.

      • Stdout: Coleta logs de saída padrão do container.

      • Logs de texto: Coleta logs de um caminho especificado dentro do container. Este exemplo coleta todos os logs de texto em /var/log/nginx e suporta caracteres curinga.

    Tags Personalizadas

    Você também pode definir tags personalizadas. Quando configuradas, essas tags são incluídas nos logs do container. Tags personalizadas ajudam a categorizar logs para facilitar estatísticas e filtragem durante a análise.

  8. Clique em Next para ir ao assistente Advanced.

Etapa 3: Concluir a configuração avançada

Na página do assistente Advanced, configure acesso, dimensionamento, agendamento e labels/annotations.

  1. Na seção Access Control, configure como expor os pods de backend.

    Você pode configurar como expor os pods de backend. Este exemplo usa um IP de cluster virtual e um Ingress para criar uma aplicação Nginx acessível pela Internet.

    • Configurar um Service: Clique em Create ao lado de Services para definir os parâmetros do service.

      Expandir para ver detalhes da configuração do service

      Parâmetro

      Descrição

      Name

      Insira um nome para o service. Este exemplo usa nginx-svc.

      Type

      Selecione o tipo de service, que determina como o service é acessado. Este exemplo seleciona Cluster IP.

      • Cluster IP: Expõe o service em um IP interno dentro do cluster. Services deste tipo são acessíveis apenas de dentro do cluster. Este é o ServiceType padrão.

        Nota

        Quando o tipo de service é Cluster IP, você pode configurar um Headless Service.

      • Server Load Balancer: Usa o Server Load Balancer (SLB) do Alibaba Cloud para expor o service. Você pode escolher acesso público ou interno. O SLB do Alibaba Cloud roteia tráfego para services ClusterIP.

        • Criar novo SLB: Clique em Modify para alterar as especificações do SLB.

        • Usar SLB existente: Selecione uma instância SLB da lista.

        Nota

        O tipo LoadBalancer suporta a criação de um novo SLB ou a reutilização de um existente, mas com as seguintes limitações:

        • O uso de uma instância SLB existente sobrescreve seus listeners atuais.

        • Instâncias SLB criadas pelo Kubernetes através de Services não podem ser reutilizadas (para evitar exclusão acidental). Apenas instâncias SLB criadas manualmente no console (ou via OpenAPI) podem ser reutilizadas.

        • Múltiplos Services reutilizando o mesmo SLB não devem compartilhar a mesma porta de listener frontend para evitar conflitos.

        • Ao reutilizar um SLB, o Kubernetes usa nomes de listeners e nomes de grupos vServer como identificadores únicos. Não modifique esses nomes.

        • A reutilização de SLB entre clusters não é suportada.

      Port Mapping

      Adicione portas de service e de container. A porta do container deve corresponder à porta exposta pelos pods de backend.

      External Traffic Policy

      • Local: Roteia tráfego apenas para pods no mesmo nó.

      • Cluster: Roteia tráfego para pods em qualquer nó.

      Nota

      Você pode definir a External Traffic Policy apenas quando o tipo de service for Server Load Balancer.

      Annotations

      Adicione uma annotation para configurar parâmetros do SLB. Por exemplo, definir service.beta.kubernetes.io/alicloud-loadbalancer-bandwidth: 20 limita a largura de banda do service a 20 Mbit/s para controlar o tráfego.

      Label

      Adicione uma label para identificar este service.

    • Configurar Ingress: Clique em Create ao lado de Ingresses para definir regras de roteamento para os pods de backend.

      Expandir para ver detalhes da configuração do Ingress

      Nota

      Ao criar uma aplicação a partir de uma imagem, você pode criar apenas um Ingress para um service. Este exemplo usa um hostname virtual como domínio de teste. Adicione um mapeamento de domínio (o endpoint externo do Ingress e o domínio do Ingress) ao seu arquivo hosts. Em produção, use um nome de domínio que possua registro ICP.

      NAME                                   READY     STATUS    RESTARTS   AGE
      nginx-2721357637-d****                 1/1       Running   1          9h

      Parâmetro

      Descrição

      Name

      Insira um nome para o Ingress. Este exemplo usa alb-ingress.

      Rules

      As regras de Ingress definem como o tráfego de entrada alcança os services do cluster. Para mais informações, consulte Guia de Início Rápido do ALB Ingress.

      • Domain Name: Insira o domínio do Ingress.

      • Path: Especifique o caminho URL para acesso ao service. O padrão é o caminho raiz /. Cada caminho mapeia para um service de backend. O SLB do Alibaba Cloud encaminha tráfego apenas se as requisições de entrada corresponderem tanto ao domínio quanto ao caminho.

      • Services: Selecione o nome e a porta do service.

      • TLS: Configure roteamento seguro.

      Este exemplo usa o domínio de teste foo.bar.com e define o service como nginx-svc.

      Canary Release

      Ative o canary release. Recomendamos selecionar Open Source Solution, pois a edição do Alibaba Cloud não é mais mantida.

      Ingress Class

      Especifique uma classe de Ingress personalizada.

      Annotations

      Defina chaves e valores de annotations personalizadas ou pesquise annotations por nome. Clique em Add para inserir pares chave-valor de annotations. Para annotations de Ingress, consulte Annotations.

      Label

      Clique em Add para inserir chaves e valores de labels que identifiquem características deste Ingress.

  2. (Opcional) Na seção Scaling, configure se deseja ativar o HPA para atender aos requisitos da aplicação sob diferentes cargas.

    • O Container Compute Service suporta dimensionamento baseado em métricas, que ajusta automaticamente o número de pods com base no uso de CPU e memória dos containers.

      Nota

      Para ativar o dimensionamento automático, você deve especificar recursos solicitados para o container. Caso contrário, o dimensionamento automático não funcionará.

      Parâmetro

      Descrição

      Metric

      Suporta CPU e memória. Deve corresponder ao tipo de recurso solicitado.

      Trigger Condition

      O limite percentual de uso de recursos. Quando excedido, o sistema realiza scale out.

      Max. Replicas

      O número máximo de containers que podem ser expandidos (scale out) para este tipo de workload.

      Min. Replicas

      O número mínimo de containers que podem ser reduzidos (scale in) para este tipo de workload.

    • O Container Compute Service também suporta dimensionamento agendado (CronHPA) para escalar clusters Kubernetes automaticamente em horários específicos. Antes de ativar o dimensionamento agendado, instale o add-on ack-kubernetes-cronhpa-controller. Para detalhes, consulte Dimensionamento agendado (CronHPA).

  1. (Opcional) Na seção Labels and Annotations, clique em Add para definir labels e annotations de pod.

  2. Clique em Create.

Etapa 4: Visualizar informações da aplicação

Após a criação da aplicação, você é redirecionado por padrão para a página de conclusão de criação. Clique em View Details para ir à página de detalhes do Deployment.

Você também pode visualizar o Deployment na página Deployments. Clique no nome do Deployment desejado ou clique em Details na coluna Actions para ir à página de detalhes da aplicação.

Create using YAML

Na orquestração de templates do ACS, você define os objetos de recurso necessários para sua aplicação e os combina em uma aplicação completa usando mecanismos como seletores de labels.

Este exemplo mostra como criar uma aplicação Nginx usando um template de orquestração contendo um Deployment e um Service. O Deployment cria recursos de pod e o Service se vincula a esses pods, formando uma aplicação Nginx completa.

  1. Faça login no console do ACS. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, escolha Workloads > Deployments.

  3. Na página Deployments, clique em Create from YAML no canto superior direito.

  4. Na página Create, configure o template e clique em Create.

    • Sample Template: O ACS fornece exemplos YAML do Kubernetes para vários tipos de recursos para ajudar você a implantar rapidamente. Você também pode escrever seu próprio YAML seguindo os padrões do Kubernetes.

    • Create Workload: Defina rapidamente um template YAML usando este recurso.

    • Use Existing Template: Importe um template de orquestração existente.

    • Save Template: Salve seu template de orquestração configurado.

    O seguinte arquivo YAML de exemplo define uma aplicação Nginx. Você pode usá-lo para criar rapidamente um Deployment para a aplicação Nginx. Por padrão, um service LoadBalancer do tipo CLB é criado.

    Nota
    • O ACS suporta orquestração YAML do Kubernetes. Use o separador --- para definir múltiplos objetos de recurso em um único template.

    • (Opcional) Ao montar volumes via Volume, os arquivos no diretório de montagem são sobrescritos por padrão. Para preservar os arquivos existentes, configure o parâmetro subPath.

    Expandir para ver o YAML do Nginx

    NAME                                   READY     STATUS    RESTARTS   AGE
    nginx-2721357637-d****                 1/1       Running   1          9h
  5. Após clicar em Create, o status da implantação é exibido.

kubectl

Você pode usar comandos kubectl para criar e visualizar aplicações.

  1. Conecte-se ao seu cluster. Para detalhes, consulte Obter kubeconfig do cluster e conectar usando kubectl ou Gerenciar clusters Kubernetes usando kubectl no CloudShell.

  2. Execute o seguinte comando para iniciar um container. Neste exemplo, o container executa um servidor web Nginx.

    NAME                                   READY     STATUS    RESTARTS   AGE
    nginx-2721357637-d****                 1/1       Running   1          9h
  3. Execute o seguinte comando para criar um endpoint de service para o container. Especificar --type=LoadBalancer cria um SLB do Alibaba Cloud que roteia tráfego para o container Nginx.

    NAME                                   READY     STATUS    RESTARTS   AGE
    nginx-2721357637-d****                 1/1       Running   1          9h
  4. Execute o seguinte comando para listar os containers nginx em execução.

    NAME                                   READY     STATUS    RESTARTS   AGE
    nginx-2721357637-d****                 1/1       Running   1          9h

    Saída esperada:

    NAME                                   READY     STATUS    RESTARTS   AGE
    nginx-2721357637-d****                 1/1       Running   1          9h