Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Implantar uma carga de trabalho e configurar o balanceamento de carga em um cluster ACK Auto Mode

Última atualização: Jun 27, 2026

Este tópico descreve como implantar uma carga de trabalho em um cluster ACK Auto Mode e expô-la à internet por meio de um ALB Ingress. Após a conclusão destas etapas, será possível acessar a aplicação usando um nome de domínio específico, garantindo gerenciamento eficiente do tráfego externo e balanceamento de carga.

Este tópico aborda as seguintes operações:

  1. Crie um namespace para a aplicação de exemplo.

  2. Implante uma aplicação Nginx de exemplo e crie um Service para expor a aplicação à rede do cluster.

  3. Crie um ALB Ingress para expor a aplicação à internet. Crie manualmente um AlbConfig para gerenciar a instância ALB e um IngressClass para associá-lo ao AlbConfig.

  4. Verifique se a implantação foi bem-sucedida e acesse a aplicação pelo navegador. Libere os recursos caso não sejam mais necessários.

Após concluir essas operações, você terá:

  • Uma aplicação Nginx de exemplo em execução com duas réplicas.

  • Um ponto de entrada público estável para a aplicação, fornecido por um ALB Ingress e um Service.

  • Redução da sobrecarga operacional, pois o ACK no Auto Mode dimensiona recursos automaticamente e gerencia o ciclo de vida dos nós com base na carga da aplicação.

Pré-requisitos

Etapa 1: Criar um namespace

Crie um namespace para isolar os recursos deste tutorial.

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

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Namespaces and Quotas.

  3. Clique em Create. Na caixa de diálogo exibida, insira um nome de namespace personalizado (este tópico usa my-nginx-namespace como exemplo), configure outras definições conforme solicitado na página e clique em OK.

Etapa 2: Implantar a aplicação Nginx e o Service

Nesta seção, implante um Deployment Nginx de exemplo chamado my-nginx e um Service chamado my-nginx-svc para expor a aplicação.

  • Deployment: 2 réplicas. A imagem utiliza uma aplicação Nginx de exemplo. A porta 80 fica exposta para receber tráfego HTTP.

  • Service: O tipo de Service é ClusterIP. A porta 80 do Service mapeia para a porta 80 do contêiner do pod. O Service usa um seletor de rótulos para corresponder aos pods.

Esta seção fornece apenas um procedimento de exemplo. Para obter procedimentos detalhados sobre a criação de cargas de trabalho e Services, consulte Criar uma carga de trabalho e Gerenciamento de Service .
  1. Crie um arquivo chamado my-nginx.yaml com o seguinte conteúdo para implantar o Deployment e o Service.

    apiVersion: apps/v1 
    kind: Deployment
    metadata:
      name: my-nginx    # The name of the sample application.
      namespace: my-nginx-namespace  # Replace with the name of the namespace that you created.
      labels:
        app: nginx
    spec:
      replicas: 2       # The number of replicas.
      selector:
        matchLabels:
          app: nginx     # The value must match the selector in the Service to expose this application.
      template:
        metadata:
          labels:
            app: nginx
        spec:
        #  nodeSelector:
        #    env: test-team
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80         # This port must be exposed in the Service.
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: nginx
      name: my-nginx-svc
      namespace: my-nginx-namespace  # Replace with the name of the namespace that you created.
    spec:
      ports:
      - port: 80
        protocol: TCP
        targetPort: 80
      selector:
        app: nginx
      type: ClusterIP   # If you use Flannel, you must use NodePort.
  2. Implante o Deployment e o Service.

    kubectl apply -f my-nginx.yaml
  3. Verifique o status do Deployment e do Service.

    • Verifique o status do Deployment.

      kubectl get deployment my-nginx -n my-nginx-namespace

      Saída esperada:

      NAME       READY   UP-TO-DATE   AVAILABLE   AGE
      my-nginx   2/2     2            2           4m36s
    • Verifique o status do Service.

      kubectl get svc my-nginx-svc -n my-nginx-namespace

      Saída esperada:

      NAME           TYPE        CLUSTER-IP        EXTERNAL-IP   PORT(S)   AGE
      my-nginx-svc   ClusterIP   192.XX.XX.164   <none>        80/TCP    42s

Etapa 3: Criar um ALB Ingress e recursos relacionados

Para gerenciar o tráfego externo que acessa aplicações no cluster usando um ALB Ingress, prepare os seguintes recursos.

Antes de criar um ALB Ingress, recomendamos conhecer seus princípios e requisitos em Gerenciamento de ALB Ingress .
  • ALB Ingress Controller: componente que gerencia recursos de Ingress. Ao ativar o Auto Mode para um cluster, o ALB Ingress Controller é instalado por padrão.

  • AlbConfig: CustomResourceDefinition (CRD) criado pelo ALB Ingress Controller para declarar a configuração de uma instância ALB. Cada AlbConfig corresponde a uma instância ALB. Uma instância ALB atua como ponto de entrada para solicitações de usuários e encaminha essas solicitações para Services de backend.

  • IngressClass: Ao criar um ALB Ingress, especifique este IngressClass para referenciar o AlbConfig correspondente. Isso permite aplicar configurações específicas de roteamento de aplicação e políticas de balanceamento de carga.

Criar um AlbConfig

  1. Crie um arquivo chamado alb.yaml com o seguinte conteúdo para criar um AlbConfig.

    • Este AlbConfig define o addressType como Internet. Isso significa que a instância ALB recebe um endereço IP público, seu nome de domínio DNS resolve para o endereço IP público e a instância fica acessível pela internet.

    • Para vSwitchId, insira os IDs de dois vSwitches de duas zonas diferentes. Os vSwitches devem estar na mesma VPC do cluster e em zonas compatíveis com o ALB.

      No VPC console , obtenha o ID do vSwitch na página vSwitch . Se precisar criar um vSwitch, consulte Criar e gerenciar vSwitches .
    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb
    spec:
      config:
        name: alb
        addressType: Internet  # The address type of the load balancer. An Internet-facing ALB instance is accessible over the internet.
        zoneMappings:               
        - vSwitchId: vsw-uf6ccg2a9g71hx8go****  # Replace with the ID of your vSwitch.
        - vSwitchId: vsw-uf6nun9tql5t8nh15****  # Replace with the ID of your vSwitch.
      listeners:
        - port: 80
          protocol: HTTP
  2. Crie o AlbConfig.

    kubectl apply -f alb.yaml
  3. Visualize o recurso AlbConfig.

    kubectl get AlbConfig alb

    Saída esperada:

    NAME   ALBID        DNSNAME                                  PORT&PROTOCOL   CERTID   AGE
    alb    alb-******   alb-******.<regionID>.alb.aliyuncs.com                            60s
    Nota

    Os campos PORT&PROTOCOL e CERTID são preenchidos somente após a criação de um listener HTTPS e a configuração de um certificado para ele. É normal que esses campos estejam vazios inicialmente.

Criar um IngressClass

  1. Crie um arquivo chamado ingress_class.yaml com o seguinte conteúdo para criar um IngressClass.

    apiVersion: networking.k8s.io/v1
    kind: IngressClass
    metadata:
      name: alb
    spec:
      controller: ingress.k8s.alibabacloud/alb
      parameters:
        apiGroup: alibabacloud.com
        kind: AlbConfig
        name: alb # The name of the AlbConfig associated with the IngressClass.
  2. Crie o IngressClass.

    kubectl apply -f ingress_class.yaml

Criar um ALB Ingress

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

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Network > Ingresses.

  3. Na página Ingresses, selecione o namespace criado e clique em Create Ingress. Na caixa de diálogo Create Ingress, configure o Ingress e siga as instruções na tela para criá-lo.

    A tabela a seguir descreve apenas os parâmetros principais. Para obter mais informações sobre os parâmetros e operações relacionadas, como configurar resolução de DNS, consulte Criar um ALB Ingress.

    Parâmetro

    Descrição

    Gateway Type

    Selecione ALB Ingress.

    Name

    Insira um nome personalizado para o Ingress, como my-albingress.

    IngressClass

    Selecione o IngressClass criado para referenciar o AlbConfig correspondente.

    Rules

    • Name: Selecione o Service de destino, que é o Service criado anteriormente.

    • Port: Selecione a porta que deseja expor para o Service, que é 80 neste exemplo.

    Mantenha os valores padrão para os outros parâmetros.

    Após a criação do Ingress, retorne à página Ingresses. Após cerca de um minuto, localize e copie o nome DNS na coluna Endpoint.

Etapa 4: Acessar a aplicação

Cole o nome DNS no navegador para acessar a aplicação Nginx.

O navegador exibirá a página inicial padrão do Nginx com o título Welcome to nginx on Anolis OS! Isso indica que o servidor web está em execução conforme esperado e que a configuração do ALB Ingress funciona corretamente.

(Opcional) Etapa 5: Limpar recursos

Os recursos criados neste tópico incluem um Deployment, um Service, um AlbConfig, um IngressClass e um ALB Ingress. Execute os comandos a seguir para limpar os recursos.

Substitua os nomes de exemplo nos comandos a seguir pelos nomes reais dos seus recursos.
kubectl delete deployment my-nginx -n my-nginx-namespace
kubectl delete service my-nginx-svc -n my-nginx-namespace
kubectl delete ingress my-albingress -n my-nginx-namespace
kubectl delete albconfig alb
kubectl delete ingressclass alb

Documentos relacionados