Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Acesse serviços usando um ALB Ingress

Última atualização: Sep 21, 2026

Os Ingresses do Alibaba Cloud Application Load Balancer (ALB) suportam http, HTTPS e QUIC. Eles são projetados para aplicações nativas de cloud que exigem alta elasticidade e que você gerencie o tráfego de camada 7 em grande escala. Os ALB Ingresses são compatíveis com Nginx Ingresses e suportam configurações complexas de roteamento de negócios e gerenciamento automático de certificados TLS, oferecendo um mecanismo flexível de gerenciamento de tráfego. Por favor, configure regras de encaminhamento para usar diferentes url e acessar diferentes service dentro de um cluster.

Pré-requisitos

Observações

  • Caso utilize o plug-in de rede Flannel, os service de backend do ALB Ingress aceitam apenas os tipos NodePort e LoadBalancer.

  • Os nomes dos recursos AlbConfig, Namespace, Ingress e service não podem iniciar com aliyun.

  • Versões anteriores do Nginx Ingress Controller não reconhecem o campo spec:ingressClassName nos recursos Ingress. Caso uma versão anterior esteja instalada e o cluster utilize tanto Nginx Ingresses quanto ALB Ingresses, o Nginx Ingress Controller poderá reconciliar os ALB Ingresses. Para evitar esse problema, atualize o Nginx Ingress Controller ou utilize uma anotação para especificar o ingressClass do ALB Ingress. Para mais informações, consulte Upgrade the Nginx Ingress Controller component ou Advanced ALB Ingress configurations.

Etapa 1: crie um AlbConfig

  1. Copie o conteúdo abaixo para um arquivo chamado alb-test.yaml e crie um AlbConfig.

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb-demo
    spec:
      config:
        name: alb-test
        addressType: Internet
        zoneMappings:
        - vSwitchId: vsw-uf6ccg2a9g71hx8go****
        - vSwitchId: vsw-uf6nun9tql5t8nh15****
      listeners:
        - port: 80
          protocol: HTTP

    Parâmetro

    Descrição

    spec.config.name

    (Opcional) Nome da instância do ALB.

    spec.config.addressType

    (Obrigatório) Tipo de endereço do balanceador de carga. Valores válidos:

    • Internet (padrão): o balanceador de carga possui um endereço IP público e o registro DNS é resolvido para esse IP, tornando-o acessível pela rede pública.

    • Intranet: o balanceador de carga possui apenas um endereço IP privado e o registro DNS é resolvido para esse IP, tornando-o acessível somente de dentro da VPC onde está implantado.

    spec.config.zoneMappings

    (Obrigatório) IDs dos vSwitches para o ALB Ingress. Para isso, especifique os IDs de pelo menos dois vSwitches em zonas diferentes. Os vSwitches especificados devem estar em zonas com suporte do ALB e na mesma VPC do cluster. Para mais informações sobre as regiões e zonas suportadas pelo ALB, consulte Regions and zones supported by ALB.

  2. Agora execute o comando a seguir para criar o AlbConfig.

    kubectl apply -f alb-test.yaml

    Saída esperada:

    albconfig.alibabacloud.com/alb-demo created
  3. Agora crie um arquivo chamado alb.yaml e copie o conteúdo a seguir para criar um IngressClass.

    Clusters que executam o Kubernetes 1.19 ou posterior

    apiVersion: networking.k8s.io/v1
    kind: IngressClass
    metadata:
      name: alb
    spec:
      controller: ingress.k8s.alibabacloud/alb
      parameters:
        apiGroup: alibabacloud.com
        kind: AlbConfig
        name: alb-demo

    Clusters que executam versões do Kubernetes anteriores a 1.19

    apiVersion: networking.k8s.io/v1beta1
    kind: IngressClass
    metadata:
      name: alb
    spec:
      controller: ingress.k8s.alibabacloud/alb
      parameters:
        apiGroup: alibabacloud.com
        kind: AlbConfig
        name: alb-demo
  4. Agora execute o comando abaixo para criar o IngressClass.

      kubectl apply -f alb.yaml

    Saída esperada:

    ingressclass.networking.k8s.io/alb created

Etapa 2: Implante service

  1. Agora crie um arquivo cafe-service.yaml com o conteúdo a seguir para implantar dois Deployments (coffee e tea) e dois service (coffee e tea).

    Expanda e visualize o arquivo YAML completo

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: coffee
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: coffee
      template:
        metadata:
          labels:
            app: coffee
        spec:
          containers:
          - name: coffee
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginxdemos:latest
            ports:
            - containerPort: 80
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: coffee-svc
    spec:
      ports:
      - port: 80
        targetPort: 80
        protocol: TCP
      selector:
        app: coffee
      clusterIP: None
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: tea
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: tea
      template:
        metadata:
          labels:
            app: tea
        spec:
          containers:
          - name: tea
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginxdemos:latest
            ports:
            - containerPort: 80
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: tea-svc
      labels:
    spec:
      ports:
      - port: 80
        targetPort: 80
        protocol: TCP
      selector:
        app: tea
      clusterIP: None
  2. Agora execute o seguinte comando para implantar os dois Deployments e os dois service.

    kubectl apply -f cafe-service.yaml

    Saída esperada:

    deployment "coffee" created
    service "coffee-svc" created
    deployment "tea" created
    service "tea-svc" created
  3. Verifique o status das aplicações e dos service criados.

    1. Agora execute o comando a seguir para verificar o status das aplicações.

      kubectl get deploy

      Saída esperada:

      NAME                             READY   UP-TO-DATE   AVAILABLE   AGE
      coffee                           1/2     2            1           2m26s
      tea                              1/1     1            1           2m26s
    2. Em seguida, execute o comando abaixo para verificar o status dos service.

      kubectl get svc

      Saída esperada:

      NAME                          TYPE           CLUSTER-IP       EXTERNAL-IP           PORT(S)                 AGE
      coffee-svc                    NodePort       172.16.XX.XX     <none>                80:32056/TCP            9m38s
      tea-svc                       NodePort       172.16.XX.XX     <none>                80:31696/TCP            9m38s

Etapa 3: configure um ALB Ingress

  1. Agora crie um arquivo chamado cafe-ingress.yaml e copie o conteúdo a seguir.

    Clusters que executam o Kubernetes 1.19 ou posterior

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: cafe-ingress 
    spec:
      ingressClassName: alb
      rules:
       - host: demo.domain.ingress.top
         http:
          paths:
          # Configure the context path
          - path: /tea
            pathType: ImplementationSpecific
            backend:
              service:
                name: tea-svc
                port:
                  number: 80
          # Configure the context path
          - path: /coffee
            pathType: ImplementationSpecific
            backend:
              service:
                name: coffee-svc
                port: 
                  number: 80

    Clusters que executam versões do Kubernetes anteriores a 1.19

    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    metadata:
      name: cafe-ingress
    spec:
      ingressClassName: alb
      rules:
       - host: demo.domain.ingress.top
         http:
          paths:
          # Configure the context path.
          - path: /tea
            backend:
              serviceName: tea-svc
              servicePort: 80
          # Configure the context path.
          - path: /coffee
            backend:
              serviceName: coffee-svc
              servicePort: 80
  2. Agora execute o comando a seguir para configurar o nome de domínio e os caminhos para expor os service coffee e tea.

    kubectl apply -f cafe-ingress.yaml

    Saída esperada:

    ingress.networking.k8s.io/cafe-ingress created
  3. Agora execute o comando abaixo para obter o endereço da instância do ALB.

    kubectl get ing

    Saída esperada:

    NAME           CLASS    HOSTS                         ADDRESS                                               PORTS   AGE
    cafe-ingress   alb      demo.domain.ingress.top       alb-m551oo2zn63yov****.cn-hangzhou.alb.aliyuncs.com   80      50s

Etapa 4: Acesse os serviços

  • Utilize a linha de comando para acessar o service coffee com o endereço obtido da instância do ALB.

    curl -H Host:demo.domain.ingress.top http://alb-lhwdm5c9h8lrcm****.cn-hangzhou.alb.aliyuncs.com/coffee
  • Utilize a linha de comando para acessar o service tea por meio do endereço obtido da instância do ALB.

    curl -H Host:demo.domain.ingress.top http://alb-lhwdm5c9h8lrcm****.cn-hangzhou.alb.aliyuncs.com/tea

Referências