Todos os produtos
Search
Central de documentação

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

Última atualização: Jun 27, 2026

O Application Load Balancer (ALB) Ingress oferece roteamento HTTP, HTTPS e QUIC na camada 7 para aplicações nativas da nuvem que exigem gerenciamento de tráfego elástico e em grande escala, além de ser compatível com o Nginx Ingress. Esse recurso suporta regras de roteamento complexas e gerenciamento automático de certificados TLS. Configure regras de encaminhamento para direcionar solicitações a diferentes Services no cluster com base no caminho da URL e no nome do host.

Pré-requisitos

Observações de uso

  • Se você usar o plug-in de rede Flannel, os Services de backend do ALB Ingress devem ser do tipo NodePort ou LoadBalancer.

  • Os nomes de objetos AlbConfig, namespaces, Ingresses e Services não podem começar com aliyun.

  • Versões anteriores do controlador NGINX Ingress não reconhecem o campo spec : ingressClassName no recurso Ingress. Caso uma versão antiga do controlador NGINX Ingress esteja instalada e você utilize tanto NGINX Ingresses quanto ALB Ingresses no cluster ACK, o controlador NGINX Ingress poderá reconciliar os ALB Ingresses. Para evitar esse problema, atualize o controlador NGINX Ingress ou use anotações para especificar as IngressClasses dos ALB Ingresses. Para mais informações, consulte Atualize o controlador NGINX Ingress ou Configurações avançadas de ALB Ingress.

Etapa 1: Crie um objeto AlbConfig

  1. Crie um arquivo chamado alb-test.yaml e copie o conteúdo abaixo para criar um objeto 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

    Nome da instância ALB. Parâmetro opcional.

    spec.config.addressType

    Tipo de endereço IP usado pela instância ALB para fornecer serviços. Parâmetro obrigatório. Valores válidos:

    • Internet (padrão): a instância ALB usa um endereço IP público. O nome de domínio do Ingress é resolvido para o endereço IP público da instância ALB, o que permite o acesso pela Internet.

    • Intranet: a instância ALB usa um endereço IP privado. O nome de domínio do Ingress é resolvido para o endereço IP privado, o que restringe o acesso à VPC onde a instância está implantada.

    spec.config.zoneMappings

    IDs dos vSwitches usados pelo ALB Ingress. Especifique pelo menos dois IDs de vSwitch. Os vSwitches devem estar em zonas diferentes dentro da VPC do cluster, e as zonas devem ser suportadas pelos ALB Ingresses. Parâmetro obrigatório. Para mais informações sobre regiões e zonas suportadas, consulte Regiões e zonas do ALB.

  2. 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. Crie um arquivo chamado alb.yaml e copie o seguinte conteúdo para ele:

    Kubernetes V1.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

    Kubernetes anterior à V1.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. Execute o comando abaixo para criar a IngressClass:

      kubectl apply -f alb.yaml

    Saída esperada:

    ingressclass.networking.k8s.io/alb created

Etapa 2: Implantar Services

  1. Crie um arquivo chamado cafe-service.yaml e copie o conteúdo a seguir para implantar dois Deployments chamados coffee e tea, além de dois Services chamados coffee-svc e tea-svc.

    YAML

    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. Execute o comando a seguir para implantar os Deployments e Services:

    kubectl apply -f cafe-service.yaml

    Saída esperada:

    deployment.apps/coffee created
    service/coffee-svc created
    deployment.apps/tea created
    service/tea-svc created
  3. Verifique o status dos Deployments e Services.

    1. Execute o comando abaixo para verificar o status da implantação:

      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. Execute o comando a seguir para verificar o status dos Services:

      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. Crie um arquivo chamado cafe-ingress.yaml e copie o conteúdo a seguir para ele:

    Kubernetes V1.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 a context path.
          - path: /tea
            pathType: ImplementationSpecific
            backend:
              service:
                name: tea-svc
                port:
                  number: 80
          # Configure a context path.
          - path: /coffee
            pathType: ImplementationSpecific
            backend:
              service:
                name: coffee-svc
                port: 
                  number: 80

    Kubernetes anterior à V1.19

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

    kubectl apply -f cafe-ingress.yaml

    Saída esperada:

    ingress.networking.k8s.io/cafe-ingress created
  3. Execute o comando abaixo para obter o nome de domínio da instância 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: Acessar os Services

  • Use o endereço da instância ALB para acessar o Service coffee:

    curl -H Host:demo.domain.ingress.top http://alb-lhwdm5c9h8lrcm****.cn-hangzhou.alb.aliyuncs.com/coffee
  • Use o endereço da instância ALB para acessar o Service tea:

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

Referências