All Products
Search
Document Center

Container Service for Kubernetes:Akses layanan menggunakan ALB Ingress

Last Updated:Aug 21, 2026

ALB Ingress (Application Load Balancer Ingress) mendukung HTTP, HTTPS, dan QUIC. ALB Ingress dirancang untuk aplikasi cloud-native yang memerlukan elastisitas tinggi dan manajemen traffic Lapisan 7 berskala besar. ALB Ingress kompatibel dengan Nginx Ingress serta mendukung konfigurasi routing bisnis kompleks dan manajemen otomatis sertifikat TLS, sehingga menyediakan mekanisme manajemen traffic yang fleksibel. Anda dapat mengonfigurasi aturan pengalihan untuk mengakses Service berbeda dalam satu kluster melalui URL yang berbeda.

Prasyarat

Catatan

  • Jika Anda menggunakan plug-in jaringan Flannel, Service backend dari ALB Ingress hanya mendukung tipe NodePort dan LoadBalancer.

  • Nama sumber daya AlbConfig, Namespace, Ingress, dan Service tidak boleh diawali dengan aliyun.

  • Versi lama Nginx Ingress Controller tidak dapat mengenali bidang spec:ingressClassName dalam sumber daya Ingress. Jika versi lama Nginx Ingress Controller terinstal dan Anda menggunakan Nginx Ingress serta ALB Ingress secara bersamaan di kluster, ALB Ingress mungkin akan direkonsiliasi oleh Nginx Ingress Controller. Untuk mencegah masalah ini, lakukan upgrade Nginx Ingress Controller atau gunakan anotasi untuk menentukan ingressClass bagi ALB Ingress. Untuk informasi selengkapnya, lihat Upgrade the Nginx Ingress Controller component atau Advanced ALB Ingress configurations.

Langkah 1: Buat AlbConfig

  1. Salin konten berikut ke file bernama alb-test.yaml untuk membuat 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

    Parameter

    Deskripsi

    spec.config.name

    (Opsional) Nama instans ALB.

    spec.config.addressType

    (Wajib) Jenis alamat load balancer. Nilai yang valid:

    • Internet (default): Load balancer memiliki alamat IP publik. Rekaman DNS di-resolve ke alamat IP publik. Load balancer dapat diakses melalui jaringan publik.

    • Intranet: Load balancer hanya memiliki alamat IP pribadi. Rekaman DNS di-resolve ke alamat IP pribadi. Load balancer hanya dapat diakses dari dalam VPC tempatnya ditempatkan.

    spec.config.zoneMappings

    (Wajib) ID vSwitch untuk ALB Ingress. Anda harus menentukan ID minimal dua vSwitch di zona berbeda. vSwitch yang ditentukan harus berada di zona yang didukung oleh ALB dan dalam VPC yang sama dengan kluster. Untuk informasi selengkapnya mengenai wilayah dan zona yang didukung oleh ALB, lihat Regions and zones supported by ALB.

  2. Jalankan perintah berikut untuk membuat AlbConfig.

    kubectl apply -f alb-test.yaml

    Output yang diharapkan:

    albconfig.alibabacloud.com/alb-demo created
  3. Buat file bernama alb.yaml dan salin konten berikut ke file tersebut untuk membuat IngressClass.

    Kluster yang menjalankan Kubernetes 1.19 atau lebih baru

    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

    Kluster yang menjalankan versi Kubernetes sebelum 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. Jalankan perintah berikut untuk membuat IngressClass.

      kubectl apply -f alb.yaml

    Output yang diharapkan:

    ingressclass.networking.k8s.io/alb created

Langkah 2: Deploy layanan

  1. Buat file cafe-service.yaml dengan konten berikut untuk melakukan deploy dua Penyebaran (Deployment) bernama coffee dan tea, serta dua layanan (Service) bernama coffee dan tea.

    Klik untuk melihat file YAML lengkap

    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. Jalankan perintah berikut untuk melakukan deploy dua Penyebaran dan dua Service tersebut.

    kubectl apply -f cafe-service.yaml

    Output yang diharapkan:

    deployment "coffee" created
    service "coffee-svc" created
    deployment "tea" created
    service "tea-svc" created
  3. Periksa status aplikasi dan Service yang telah dibuat.

    1. Jalankan perintah berikut untuk memeriksa status aplikasi.

      kubectl get deploy

      Output yang diharapkan:

      NAME                             READY   UP-TO-DATE   AVAILABLE   AGE
      coffee                           1/2     2            1           2m26s
      tea                              1/1     1            1           2m26s
    2. Jalankan perintah berikut untuk memeriksa status Service.

      kubectl get svc

      Output yang diharapkan:

      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

Langkah 3: Konfigurasi ALB Ingress

  1. Buat file bernama cafe-ingress.yaml dan salin konten berikut ke dalamnya.

    Kluster yang menjalankan Kubernetes 1.19 atau lebih baru

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

    Kluster yang menjalankan versi Kubernetes sebelum 1.19

    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    metadata:
      name: cafe-ingress
    spec:
      ingressClassName: alb
      rules:
       - host: demo.domain.ingress.top
         http:
          paths:
          # Konfigurasikan path konteks.
          - path: /tea
            backend:
              serviceName: tea-svc
              servicePort: 80
          # Konfigurasikan path konteks.
          - path: /coffee
            backend:
              serviceName: coffee-svc
              servicePort: 80
  2. Jalankan perintah berikut untuk mengonfigurasi nama domain dan path guna mengekspos Service coffee dan tea.

    kubectl apply -f cafe-ingress.yaml

    Output yang diharapkan:

    ingress.networking.k8s.io/cafe-ingress created
  3. Jalankan perintah berikut untuk mengambil alamat instans ALB.

    kubectl get ing

    Output yang diharapkan:

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

Langkah 4: Akses layanan

  • Gunakan command line untuk mengakses Service coffee dengan alamat instans ALB yang telah diambil.

    curl -H Host:demo.domain.ingress.top http://alb-lhwdm5c9h8lrcm****.cn-hangzhou.alb.aliyuncs.com/coffee
  • Gunakan command line untuk mengakses Service tea dengan alamat instans ALB yang telah diambil.

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

Referensi