Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Criar uma carga de trabalho sem estado (Deployment)

Última atualização: Jun 27, 2026

Um Deployment gerencia um conjunto de pods idênticos e mantém o número especificado em execução continuamente. É o tipo padrão de carga de trabalho para aplicações sem estado no Kubernetes — serviços que não dependem de estado local persistente, como servidores web, backends de API e processadores em lote.

Este tópico mostra como criar um Deployment em um cluster ACK usando o console ou kubectl.

Pré-requisitos

Antes de começar, verifique se você possui:

  • Um cluster ACK. Consulte Cargas de trabalho para entender os conceitos e considerações sobre cargas de trabalho.

  • Acesso à internet para o cluster ou seus nós, pois os exemplos de início rápido baixam uma imagem pública:

Criar um Deployment

Criar um Deployment usando o console

Os passos abaixo apresentam o caminho mais rápido para ter um Deployment em execução. Após dominar o básico, consulte a Referência de configuração do console para personalizar ainda mais a carga de trabalho.

  1. Configure as informações básicas. Faça login no Console do Container Service for Kubernetes. No painel de navegação à esquerda, clique em Clusters. Na página Clusters, clique no nome do seu cluster e escolha Workloads > Deployments no painel de navegação à esquerda. Na página Deployments, clique em Create from Image. Na página Basic Information, defina o nome da aplicação e outras configurações básicas, depois clique em Next para ir à página Container.

    image

    image

  2. Configure the container. Na seção Container, defina Image Name com o endereço abaixo e defina Port como 80. Mantenha todas as outras configurações com os valores padrão e clique em Next para acessar a página Advanced.

    Importante

    Para baixar esta imagem, o cluster precisa ter acesso à internet. Se você selecionou Configure SNAT for VPC ao criar o cluster, o acesso à internet já está ativado. Caso contrário, ative-o agora.

    anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6

    image

  3. Complete the advanced configuration. Na página Advanced, clique em Create no lado direito de Services para criar um Service do tipo SLB e expor a carga de trabalho na internet. Configure Scaling, Scheduling e Labels and Annotations conforme necessário, e clique em Create na parte inferior da página.

    Importante

    A criação de um serviço do tipo SLB provisiona uma instância de Server Load Balancer (SLB), o que gera cobranças no modelo de pagamento conforme o uso. Consulte Pagamento conforme o uso para detalhes de preços. Libere a instância SLB quando não precisar mais dela.

    image

  4. Access the application. Na página Complete, clique em View Details no painel Creation Task Submitted. Clique na aba Access Method, localize o serviço chamado nginx-test-svc e clique no link na coluna External Endpoint. A partir da página Deployments, é possível View, Edit e Redeploy a carga de trabalho a qualquer momento.

    image

    image

    image

Criar um Deployment usando kubectl

Importante

Conecte-se ao cluster com kubectl antes de prosseguir. Consulte Obter o arquivo kubeconfig de um cluster e usar kubectl para conectar-se ao cluster.

  1. Copie o conteúdo YAML a seguir e salve-o como deployment.yaml. Ele define um Deployment com duas réplicas e um serviço LoadBalancer que expõe o Deployment na porta 80.

    apiVersion: apps/v1
    kind: Deployment    # Workload type
    metadata:
      name: nginx-test
      namespace: default  # Change the namespace as needed
      labels:
        app: nginx
    spec:
      replicas: 2  # Specify the number of pods
      selector:
        matchLabels:
          app: nginx
      template: # Pod configuration
        metadata:
          labels: # Pod labels
            app: nginx
        spec:
          containers:
          - name: nginx  # Container name
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6  # Use a specific version of the Nginx image
            ports:
            - containerPort: 80  # Port exposed by the container
              protocol: TCP  # Specify the protocol as TCP or UDP. The default is TCP.
    ---
    # service
    apiVersion: v1
    kind: Service
    metadata:
      name: nginx-test-svc
      namespace: default  # Change the namespace as needed
      labels:
        app: nginx
    spec:
      selector:
        app: nginx  # Match labels to ensure the service points to the correct pods
      ports:
        - port: 80           # Port provided by the service within the cluster
          targetPort: 80     # Points to the port listened to by the application inside the container (containerPort)
          protocol: TCP      # Protocol. The default is TCP.
      type: LoadBalancer      # Service type. The default is ClusterIP for internal access.
  2. Aplique o manifesto:

    kubectl apply -f deployment.yaml

    Saída esperada:

    deployment.apps/nginx-test created
    service/nginx-test-svc created
  3. Execute o comando a seguir para visualizar o endereço IP público do serviço:

    kubectl get svc

    Saída esperada:

    NAME            TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)        AGE
    kubernetes      ClusterIP      172.16.**.***    <none>          443/TCP        4h47m
    nginx-test-svc  LoadBalancer   172.16.**.***    106.14.**.***   80:31130/TCP   1h10m
  4. Em um navegador, insira o endereço IP público do Nginx (106.14..*) para acessar a aplicação Nginx.

    image

Referência de configuração do console

Informações básicas

image

image

Item de Configuração

Descrição

Name

Nome da carga de trabalho. Os nomes dos pods pertencentes a ela são gerados com base neste nome.

Namespace

Namespace ao qual a carga de trabalho pertence.

Replicas

Quantidade de pods na carga de trabalho. O padrão é 2.

Type

Tipo da carga de trabalho. Para escolher um tipo, consulte Criar uma carga de trabalho.

Label

Rótulos da carga de trabalho.

Annotations

Anotações da carga de trabalho.

Synchronize Timezone

Define se o contêiner usa o mesmo fuso horário do nó onde reside.

Contêiner

Geral

image

Item de Configuração

Descrição

Image Name

  • Select images

    Clique em Select images para escolher uma imagem. É possível selecionar entre os três tipos de imagens a seguir.

    • Container Registry Enterprise Edition: Selecione uma imagem da Enterprise Edition hospedada no Container Registry (ACR). É necessário escolher a região onde a imagem está localizada e a instância do ACR. Para mais informações sobre o ACR, consulte O que é o Container Registry?.

    • Container Registry Personal Edition: Selecione uma imagem da Personal Edition hospedada no ACR. É necessário escolher a região onde a imagem está localizada e a instância do ACR.

    • Artifact Center: Imagens comuns fornecidas pela Alibaba Cloud e pela comunidade OpenAnolis. Para usar Artifacts, você precisa ativar o acesso à internet para o cluster. Para mais informações sobre Artifacts, consulte Artifacts.

    Para usar uma imagem de outra source, insira diretamente o endereço da imagem no formato domainname/namespace/imagename:tag. Se você não especificar um domainname, como ao inserir nginx:1.7.9, a imagem será baixada do Docker Hub.

  • Select Image Pull Policy

    O ACK suporta as três políticas de pull de imagem (imagePullPolicy) a seguir:

    • IfNotPresent (Padrão): Usa a imagem local se existir no nó worker. Caso contrário, baixa a imagem.

    • Always: Sempre baixa a imagem do Container Registry para cada deployment ou scale-out, nunca usando a do nó local.

    • Never: Usa apenas a imagem local. Se não houver imagem local, o pull falha.

  • Set Image Pull Secret

    Ao usar o ACR ou um repositório de terceiros, pode ser necessário configurar um secret para baixar imagens.

    Nota

    Para instâncias Enterprise do ACR, use o componente sem senha para baixar imagens. Para mais informações, consulte Instalar e usar o componente sem senha para clusters não gerenciados.

Resource Limit

Os resources.limits para o contêiner. Para mais informações, consulte Requests e Limits.

Required Resources

Os resources.requests para o contêiner. Para mais informações, consulte Requests e Limits.

Container Start Parameter

  • stdin: Habilita a entrada padrão para o contêiner.

  • tty: Aloca um terminal virtual para o contêiner enviar sinais.

Essas duas opções geralmente são usadas juntas para vincular o terminal (tty) à entrada padrão do contêiner (stdin). Por exemplo, um programa interativo recebe entrada padrão do usuário e a exibe no terminal.

Privileged Container

  • Selecione esta caixa para definir privileged=true e ativar o modo privilegiado.

  • Desmarque esta caixa para definir privileged=false e desativar o modo privilegiado.

O modo privilegiado concede ao contêiner permissões semelhantes às do sistema operacional do nó worker host, como acessar dispositivos de hardware e montar sistemas de arquivos.

Init Containers

Selecione esta opção para criar um contêiner de inicialização.

Contêineres de inicialização fornecem um mecanismo para bloquear ou atrasar a inicialização dos contêineres de aplicação. Após a execução bem-sucedida dos contêineres de inicialização, os outros contêineres no pod iniciam em paralelo. Por exemplo, verifique a disponibilidade de serviços dependentes. Contêineres de inicialização podem incluir ferramentas utilitárias e scripts de instalação que não estão na imagem da aplicação para preparar o ambiente de execução do contêiner, como definir parâmetros de kernel ou gerar arquivos de configuração. Para mais informações, consulte Contêineres de Inicialização.

Portas

image

Item de Configuração

Descrição

Name

Nome da porta do contêiner. Serve apenas para distinguir portas e não tem efeito funcional.

Container Port

Porta exposta pelo contêiner. O valor deve estar entre 1 e 65535. Um contêiner deve expor uma porta para ser acessível fora do pod e permitir comunicação entre contêineres dentro do pod.

Todos os contêineres em um pod compartilham a pilha de protocolos de rede do pod, portanto, as portas não podem ser duplicadas ao configurar vários contêineres em um único pod.

Protocol

Protocolo da camada 4 (camada de transporte) usado pela porta do contêiner. TCP e UDP são suportados.

Variáveis de Ambiente

image

Item de Configuração

Descrição

Type

Tipo da variável de ambiente. Os seguintes tipos são suportados:

  • Custom

    Use env para codificar variáveis de ambiente diretamente na carga de trabalho.

  • ConfigMaps

    Use envFrom para obter dados de configuração não sensíveis armazenados em um ConfigMap.

  • Secrets

    Use envFrom para obter informações sensíveis armazenadas em um Secret, como senhas e chaves de API.

  • Value/ValueFrom

    Use value/valueFrom para obter outras variáveis de ambiente ou valores predefinidos.

  • ResourceFieldRef

    Use resourceFieldRef para obter informações de recursos do nó onde o pod está localizado.

Itens de configuração e secrets suportam a referência a todos os arquivos. Tomando um secret como exemplo: se você selecionar o tipo Secret e escolher apenas o secret alvo, todos os arquivos serão referenciados por padrão.Variáveis de ambiente

O arquivo YAML correspondente também referencia todo o secret.yaml

Se você selecionar Resource Reference, o parâmetro resourceFieldRef é usado principalmente para referenciar valores de recursos declarados pelo contêiner a partir da especificação do pod. Esses valores são então passados ao contêiner como variáveis de ambiente. O YAML correspondente é o seguinte:

image

Variable Key

Nome da variável de ambiente no pod.

Value/ValueFrom

Valor da variável de ambiente ou um valor obtido de outra source.

Verificação de integridade

image

Item de Configuração

Descrição

Liveness: Usado para determinar se um contêiner está funcionando normalmente. Se um número especificado de verificações falhar, o kubelet reinicia o contêiner. Probes de Liveness detectam problemas que fazem o contêiner permanecer em estado de execução, mas sem responder, como um deadlock.

Tipo de requisição: Requisição HTTP

Envia uma requisição HTTP ao contêiner para verificar periodicamente se ele está normal.

  • Protocol: HTTP/HTTPS.

  • Path: Caminho usado para acessar o servidor HTTP.

  • Port: Porta de acesso ou nome da porta exposta pelo contêiner. 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. Especifique os cabeçalhos como pares chave-valor.

  • Initial Delay (segundos): O initialDelaySeconds. Número de segundos a aguardar antes que o primeiro probe seja executado após o início do contêiner. O valor padrão é 3 segundos.

  • Period (segundos): O periodSeconds. Intervalo em que o probe é realizado. O valor padrão é 10 segundos, e o mínimo é 1 segundo.

  • Timeout (segundos): O timeoutSeconds para o probe. O valor padrão é 1 segundo, e o mínimo é 1 segundo.

  • Healthy Threshold: Número mínimo de probes consecutivos bem-sucedidos necessários para que o probe seja considerado bem-sucedido após uma falha. O valor padrão é 1, e o mínimo é 1. Para probes de liveness, este valor deve ser 1.

  • Unhealthy Threshold: Número mínimo de probes consecutivos com falha necessários para que o probe seja considerado falho após um sucesso. O valor padrão é 3, e o mínimo é 1.

Tipo de requisição: Conexão TCP

Envia um socket TCP ao contêiner. O kubelet tenta abrir um socket na porta especificada. Se a conexão for estabelecida, o contêiner é considerado saudável. Caso contrário, é considerado falho.

  • Port: Porta de acesso ou nome da porta exposta pelo contêiner. O número da porta deve estar entre 1 e 65535.

  • Initial Delay (segundos): O initialDelaySeconds. Número de segundos a aguardar antes que o primeiro probe seja executado após o início do contêiner. O valor padrão é 15 segundos.

  • Period (segundos): O periodSeconds. Intervalo em que o probe é realizado. O valor padrão é 10 segundos, e o mínimo é 1 segundo.

  • Timeout (segundos): O timeoutSeconds para o probe. O valor padrão é 1 segundo, e o mínimo é 1 segundo.

  • Healthy Threshold: Número mínimo de probes consecutivos bem-sucedidos necessários para que o probe seja considerado bem-sucedido após uma falha. O valor padrão é 1, e o mínimo é 1. Para probes de liveness, este valor deve ser 1.

  • Unhealthy Threshold: Número mínimo de probes consecutivos com falha necessários para que o probe seja considerado falho após um sucesso. O valor padrão é 3, e o mínimo é 1.

Tipo de requisição: Linha de comando

Executa um comando de probe no contêiner para verificar sua integridade.

  • Command: Comando de probe usado para verificar a integridade do contêiner.

  • Initial Delay (segundos): O initialDelaySeconds. Número de segundos a aguardar antes que o primeiro probe seja executado após o início do contêiner. O valor padrão é 5 segundos.

  • Period (segundos): O periodSeconds. Intervalo em que o probe é realizado. O valor padrão é 10 segundos, e o mínimo é 1 segundo.

  • Timeout (segundos): O timeoutSeconds para o probe. O valor padrão é 1 segundo, e o mínimo é 1 segundo.

  • Healthy Threshold: Número mínimo de probes consecutivos bem-sucedidos necessários para que o probe seja considerado bem-sucedido após uma falha. O valor padrão é 1, e o mínimo é 1. Para probes de liveness, este valor deve ser 1.

  • Unhealthy Threshold: Número mínimo de probes consecutivos com falha necessários para que o probe seja considerado falho após um sucesso. O valor padrão é 3, e o mínimo é 1.

Readiness: Usado para determinar se um contêiner está pronto para aceitar tráfego. Um pod é anexado ao backend de um serviço somente após seu probe de readiness ser bem-sucedido.

Startup: Executado apenas quando o contêiner inicia para verificar se ele começou com sucesso. O Liveness Probe e o Readiness Probe são executados somente após o probe de startup ser bem-sucedido.

Nota

Probes de Startup são suportados apenas em clusters Kubernetes que executam a versão 1.18 ou posterior.

Ciclo de vida

image

Item de Configuração

Descrição

Start

Define comandos e parâmetros de pré-inicialização para o contêiner. O comando e os parâmetros de start definem as ações a serem realizadas quando o contêiner inicia, usadas para inicializar o serviço da aplicação. Adequado para deployments de aplicações que exigem variáveis de ambiente específicas, alvos de montagem ou mapeamentos de porta.

Post Start

Define comandos a serem executados após o início do contêiner. Comandos post-start são usados para realizar tarefas específicas após o início do contêiner, como inicializar configurações ou executar scripts. Adequado para cenários onde o trabalho de preparação precisa ser concluído antes que o processo principal comece.

Pre Stop

Define comandos de pré-parada para o contêiner. Comandos pre-stop são usados para encerrar o processo da aplicação dentro do contêiner, garantindo a consistência dos dados e o término normal do serviço. Adequado para cenários que exigem um desligamento seguro para evitar perda de dados ou anomalias no serviço.

Configure handlers de comando de start, post-start e pre-stop para o ciclo de vida do contêiner. Para mais informações, consulte Configurar Ciclo de Vida.

Volume

Item de Configuração

Descrição

Add Local Storage

Monta um volume de armazenamento local do nó no pod. Dados em um volume de armazenamento local ficam no nó e ficam indisponíveis se o nó for desligado. O armazenamento local também suporta Secret, ConfigMap e outros tipos de volumes efêmeros. Recursos de armazenamento são complexos. Antes de usar volumes de armazenamento, leia Armazenamento para entender os fundamentos de armazenamento no ACK.

Add PVC

Monta um volume de armazenamento em nuvem no pod para persistência de dados importantes dentro do contêiner. Um volume de armazenamento em nuvem é um serviço de armazenamento remoto fora do cluster, totalmente independente dos nós workers e não afetado por mudanças nos nós. No ACK, volumes de armazenamento em nuvem são tipicamente serviços fornecidos pela Alibaba Cloud, como discos, NAS ou OSS. Recursos de armazenamento são complexos. Antes de usar volumes de armazenamento, leia Armazenamento para entender os fundamentos de armazenamento no ACK.

Log

Collection configuration

  • Logstore: Um Logstore correspondente é criado no projeto do Simple Log Service associado ao cluster para armazenar logs coletados. Antes de usar logs, leia Gerenciamento de Logs para entender os fundamentos de logging no ACK.

  • Caminho do Log no Contêiner: Caminho dos logs a serem coletados dentro do contêiner. Se definido como Stdout, coleta os logs de saída padrão do contêiner.

Custom Tag

Após definir uma tag personalizada, a tag é coletada junto com a saída de log do contêiner, facilitando operações de análise como estatísticas e filtragem de logs.

Configuração avançada

Cartão de Configuração

Item de Configuração

Descrição

Access Control

Services

Um serviço fornece um ponto de entrada unificado e fixo da camada 4 (camada de transporte) para um grupo de pods. É um recurso obrigatório para expor uma carga de trabalho. Serviços suportam vários tipos, incluindo Cluster IP, Node Port e SLB. Antes de configurar um serviço, consulte Gerenciamento de serviços para entender os fundamentos de serviços.

Ingresses

Um Ingress fornece um ponto de entrada da camada 7 (camada de aplicação) para múltiplos serviços em um cluster e encaminha requisições para diferentes serviços com base na correspondência de nome de domínio. Antes de usar um Ingress, instale um controlador de Ingress. O ACK oferece várias opções para diferentes cenários. Consulte Comparação entre Nginx Ingress, ALB Ingress e MSE Ingress para fazer sua escolha.

Scaling

HPA

Aciona o dimensionamento automático monitorando métricas de desempenho dos contêineres. O dimensionamento baseado em métricas ajuda a ajustar automaticamente o total de recursos usados por uma carga de trabalho quando a carga de negócios flutua, escalando horizontalmente para lidar com altas cargas e reduzindo para economizar recursos durante baixas cargas. Para mais informações, consulte Usar Horizontal Pod Autoscaling (HPA).

CronHPA

Aciona o dimensionamento da carga de trabalho em horários agendados. Adequado para cenários com alterações periódicas na carga de negócios, como picos cíclicos de tráfego em redes sociais após o almoço e jantar. Para mais informações, consulte Usar CronHPA para dimensionamento horizontal agendado de pods.

Scheduling

Upgrade Method

Mecanismo pelo qual uma carga de trabalho substitui pods antigos por novos quando a configuração do pod muda.

  • Atualização contínua (rollingupdate): Substitui uma parte dos pods por vez, prosseguindo para a próxima substituição apenas após os novos pods estarem funcionando com sucesso. Este método garante nenhuma interrupção de serviço, mas usuários podem acessar versões diferentes dos pods simultaneamente.

  • Recriar (Recreate): Substitui todos os pods de uma vez. Pode causar interrupção de serviço, mas garante que todos os pods sejam da mesma versão.

  • Node Affinity

  • Pod Affinity

  • Pod Anti-affinity

  • Toleration

Configurações de afinidade, anti-afinidade e tolerância são usadas para agendamento, garantindo que os pods sejam executados em nós específicos. Operações de agendamento são complexas e exigem planejamento antecipado com base nas suas necessidades. Para operações detalhadas, consulte Agendamento.

Labels and Annotations

Pod Labels

Adiciona um rótulo a cada pod pertencente a esta carga de trabalho. Vários recursos no cluster, incluindo cargas de trabalho e serviços, correspondem aos pods através de rótulos. O ACK adiciona um rótulo padrão aos pods no formato app:(nome da aplicação).

Pod Annotations

Adiciona uma anotação a cada pod pertencente a esta carga de trabalho. Alguns recursos no ACK usam anotações. Edite-as ao utilizar esses recursos.

Exemplo de YAML de carga de trabalho

O YAML abrangente a seguir demonstra opções comuns de configuração, incluindo limites de recursos, verificações de integridade, variáveis de ambiente de um ConfigMap e um Ingress.

apiVersion: apps/v1
kind: Deployment    # Workload type
metadata:
  name: nginx-test
  namespace: default  # Change the namespace as needed
  labels:
    app: nginx
spec:
  replicas: 2  # Specify the number of pods
  selector:
    matchLabels:
      app: nginx
  template: # Pod configuration
    metadata:
      labels: # Pod labels
        app: nginx
      annotations: # Pod annotations
        description: "This is an application deployment"
    spec:
      containers:
      - name: nginx  # Image name
        image: nginx:1.7.9  # Use a specific version of the Nginx image
        ports:
        - name: nginx  # name
          containerPort: 80  # Port exposed by the container
          protocol: TCP  # Specify the protocol as TCP or UDP. The default is TCP.
        command: ["/bin/sh"]  # Container start command
        args: [ "-c", "echo $(SPECIAL_LEVEL_KEY) $(SPECIAL_TYPE_KEY) && exec nginx -g 'daemon off;'"] # Output variables, add command to start nginx
        stdin: true  # Enable standard input
        tty: true    # Allocate a virtual terminal
        env:
          - name: SPECIAL_LEVEL_KEY
            valueFrom:
              configMapKeyRef:
                name: special-config  # Name of the configuration item
                key: SPECIAL_LEVEL    # Key name of the configuration item
        securityContext:
          privileged: true  # true enables privileged mode, false disables it. The default is false.
        resources:
          limits:
            cpu: "500m"               # Maximum CPU usage, 500 millicores
            memory: "256Mi"           # Maximum memory usage, 256 MiB
            ephemeral-storage: "1Gi"  # Maximum ephemeral storage usage, 1 GiB
          requests:
            cpu: "200m"               # Minimum requested CPU usage, 200 millicores
            memory: "128Mi"           # Minimum requested memory usage, 128 MiB
            ephemeral-storage: "500Mi" # Minimum requested ephemeral storage usage, 500 MiB
        livenessProbe:  # Liveness probe configuration
          httpGet:
            path: /
            port: 80
          initialDelaySeconds: 30
          periodSeconds: 10
        readinessProbe:  # Readiness probe configuration
          httpGet:
            path: /
            port: 80
          initialDelaySeconds: 5
          periodSeconds: 10
        volumeMounts:
        - name: tz-config
          mountPath: /etc/localtime
          readOnly: true
      volumes:
      - name: tz-config
        hostPath:
          path: /etc/localtime  # Mount the host's /etc/localtime file to the same path in the container using volumeMounts and volumes fields.
---
# service
apiVersion: v1
kind: Service
metadata:
  name: nginx-test-svc
  namespace: default  # Change the namespace as needed
  labels:
    app: nginx
spec:
  selector:
    app: nginx  # Match labels to ensure the service points to the correct pods
  ports:
    - port: 80           # Port provided by the service within the cluster
      targetPort: 80     # Points to the port listened to by the application inside the container (containerPort)
      protocol: TCP      # Protocol. The default is TCP.
  type: ClusterIP        # Service type. The default is ClusterIP for internal access.
---
# ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress
  namespace: default  # Change the namespace as needed
  annotations:
    kubernetes.io/ingress.class: "nginx"  # Specify the Ingress controller type
    # If using Alibaba Cloud SLB Ingress controller, you can specify the following:
    # service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "lb-xxxxxxxxxx"
    # service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: "slb.spec.s1.small"
spec:
  rules:
    - host: foo.bar.com  # Replace with your domain name
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: nginx-service  # Backend service name
                port:
                  number: 80         # Backend service port
  tls:  # Optional, for enabling HTTPS
    - hosts:
        - foo.bar.com  # Replace with your domain name
      secretName: tls-secret  # TLS certificate Secret name

Próximos passos