All Products
Search
Document Center

Container Compute Service:Memulai Cepat untuk ALB Ingress

Last Updated:Feb 11, 2026

Application Load Balancer (ALB) Ingress dibangun di atas ALB untuk menyediakan pengelolaan lalu lintas Ingress yang andal. ALB Ingress kompatibel dengan Nginx Ingress, mampu menangani routing bisnis yang kompleks, serta mendukung penemuan sertifikat otomatis. ALB Ingress mendukung protokol HTTP, HTTPS, dan QUIC. Penggunaan ALB Ingress dalam kluster Alibaba Cloud Container Service for Kubernetes (ACK) menyediakan elastisitas tinggi dan kemampuan pemrosesan lalu lintas Layer 7 berskala besar yang dibutuhkan oleh aplikasi cloud-native.

Cara kerja

ALB Ingress melibatkan konsep dasar berikut:

  • ALB Ingress Controller adalah komponen yang mengelola resource Ingress. Komponen ini menggunakan API Server untuk mengambil perubahan pada resource Ingress dan AlbConfig secara dinamis, lalu memperbarui instans ALB. Berbeda dengan Nginx Ingress Controller, ALB Ingress Controller berfungsi sebagai lapisan kontrol untuk instans ALB. ALB Ingress Controller mengelola instans ALB tetapi tidak menangani lalu lintas pengguna secara langsung; instans ALB-lah yang meneruskan lalu lintas pengguna. ALB Ingress Controller menggunakan API Server kluster untuk mengambil perubahan pada resource Ingress secara dinamis dan memperbarui instans ALB berdasarkan aturan pengalihan yang didefinisikan dalam Ingress.

  • AlbConfig (CRD tingkat kluster): AlbConfig adalah Custom Resource Definition (CRD) tingkat kluster yang dibuat oleh ALB Ingress Controller. Parameter dalam AlbConfig mendefinisikan konfigurasi instans ALB. Satu AlbConfig berkorespondensi dengan satu instans ALB. Instans ALB merupakan titik masuk lalu lintas pengguna dan bertanggung jawab untuk meneruskan permintaan pengguna ke layanan backend. Instans ini sepenuhnya dikelola oleh Application Load Balancer (ALB).

  • IngressClass: IngressClass mendefinisikan asosiasi antara Ingress dan AlbConfig.

  • Ingress: Ingress adalah objek resource di Kubernetes yang mendefinisikan routing dan aturan akses lalu lintas eksternal. ALB Ingress Controller memantau perubahan pada resource Ingress dan memperbarui instans ALB untuk meneruskan lalu lintas.

  • Service: Di Kubernetes, pod merupakan resource sementara yang sering berubah. Service menyediakan titik masuk yang stabil dan terpadu untuk sekelompok pod yang menjalankan fungsi yang sama. Aplikasi atau layanan lain dapat berkomunikasi dengan pod backend dengan mengakses alamat IP virtual dan port service tersebut, tanpa perlu mengetahui perubahan pada masing-masing pod.

Gambar berikut menunjukkan hubungan logis antara instans ALB dan ALB Ingress.

image

Batasan

Nama resource AlbConfig, Namespace, Ingress, dan Service tidak boleh dimulai dengan aliyun.

Versi lama Nginx Ingress Controller tidak mengenali field spec:ingressClassName. Jika Ingress Nginx dan ALB Ingress dikonfigurasi secara bersamaan dalam kluster Anda, ALB Ingress mungkin diproses ulang oleh versi lama Nginx Ingress Controller. Untuk menghindari masalah ini, segera perbarui Nginx Ingress Controller atau gunakan anotasi untuk menentukan IngressClass untuk ALB Ingress. Untuk informasi lebih lanjut, lihat Perbarui komponen Nginx Ingress Controller atau Penggunaan ALB Ingress lanjutan.

Contoh skenario

Tutorial ini menggunakan deployment Nginx dengan empat pod sebagai contoh untuk menunjukkan cara mengonfigurasi ALB Ingress agar meneruskan lalu lintas berdasarkan path URL yang berbeda di bawah nama domain yang sama.

Permintaan frontend

Trafik diteruskan ke

demo.domain.ingress.top/coffee

layanan coffee

demo.domain.ingress.top/tea

layanan tea

Prasyarat

Langkah 1: Deploy layanan backend

Konsol

  1. Masuk ke Konsol ACS. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster target. Di panel navigasi kiri, pilih Workloads > Deployments.

  3. Pada halaman Deployments, klik Create from YAML di pojok kanan atas.

  4. Pada halaman Create, lakukan langkah-langkah berikut.

    1. Sample Template: Pilih Custom.

    2. Template: Masukkan kode file konfigurasi YAML. File konfigurasi ini mendeploy dua Deployment bernama coffee dan tea, serta dua Service bernama coffee-svc dan tea-svc.

      Referensi konfigurasi 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
        type: ClusterIP
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: tea
      spec:
        replicas: 2
        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
      spec:
        ports:
        - port: 80
          targetPort: 80
          protocol: TCP
        selector:
          app: tea
        type: ClusterIP
  5. Setelah konfigurasi selesai, klik Create. Pesan Created Successfully akan muncul.

  6. Verifikasi bahwa deployment dan service telah dibuat.

    1. Di panel navigasi kiri, pilih Workloads > Deployments. Verifikasi bahwa deployment bernama coffee dan tea telah dibuat.

    2. Di panel navigasi kiri, pilih Network > Services. Verifikasi bahwa service bernama coffee-svc dan tea-svc telah dibuat.

kubectl

  1. Buat file bernama cafe-service.yaml dengan konten berikut. File ini digunakan untuk mendeploy dua deployment bernama coffee dan tea, serta dua service bernama coffee-svc dan tea-svc.

    Referensi konfigurasi 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
      type: ClusterIP
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: tea
    spec:
      replicas: 2
      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
    spec:
      ports:
      - port: 80
        targetPort: 80
        protocol: TCP
      selector:
        app: tea
      type: ClusterIP
  2. Jalankan perintah berikut untuk mendeploy dua deployment 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. Jalankan perintah berikut untuk memeriksa status aplikasi dan service.

    1. Jalankan perintah berikut untuk memeriksa status aplikasi.

      kubectl get deployment

      Output yang diharapkan:

      NAME                             READY   UP-TO-DATE   AVAILABLE   AGE
      coffee                           2/2     2            2           2m 26s
      tea                              2/2     2            2           2m 26s
    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                    ClusterIP       172.16.XX.XX     <none>                80/TCP            9m 38s
      tea-svc                       ClusterIP       172.16.XX.XX     <none>                80/TCP            9m 38s

Langkah 2: Buat ALBConfig

Konsol

  1. Masuk ke Konsol ACS. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster target. Di panel navigasi kiri, pilih Workloads > Custom Resources.

  3. Pada tab CRDs, klik Create from YAML.

    1. Sample Template: Pilih Custom.

    2. Template: Masukkan kode file konfigurasi YAML.

      Referensi konfigurasi YAML

      apiVersion: alibabacloud.com/v1
      kind: AlbConfig
      metadata:
        name: alb-demo
      spec:
        config:
          name: alb-test
          addressType: Internet
          zoneMappings:                          # Untuk memastikan ketersediaan tinggi, pilih minimal dua vSwitch di zona berbeda.
          - vSwitchId: vsw-uf6ccg2a9g71hx8go**** # Ganti dengan ID vSwitch aktual (di Zona 1).
          - vSwitchId: vsw-uf6nun9tql5t8nh15**** # Ganti dengan ID vSwitch aktual (di Zona 2, yang harus berbeda dari Zona 1).
        listeners:
          - port: 80
            protocol: HTTP

      Tabel berikut menjelaskan parameter yang dapat disesuaikan.

      Parameter

      Wajib

      Deskripsi

      metadata.name

      Ya

      Nama AlbConfig.

      Catatan

      Nama AlbConfig harus unik dalam kluster. Saat membuat AlbConfig, pastikan namanya unik untuk menghindari konflik penamaan.

      spec.config.name

      Tidak

      Nama instans ALB.

      spec.config.addressType

      Tidak

      Jenis jaringan instans ALB. Nilai yang valid:

      • Internet (default): Instans ALB bersifat publik dan dapat diakses dari Internet.

        Catatan

        Application Load Balancer menyediakan layanan yang menghadap Internet dengan mengaitkan Elastic IP Address (EIP). Jika Anda menggunakan instans ALB yang menghadap Internet, Anda akan dikenai biaya untuk instans EIP, bandwidth, dan transfer data. Untuk informasi selengkapnya, lihat Pay-as-you-go.

      • Intranet: Instans ALB bersifat privat dan hanya dapat diakses dalam VPC.

      spec.config.zoneMappings

      Ya

      Atur ID vSwitch ALB. Untuk informasi tentang cara membuat vSwitch, lihat Buat dan kelola vSwitch.

      Catatan
      • vSwitch yang ditentukan harus berada di zona yang didukung ALB dan dalam VPC yang sama dengan kluster. Untuk informasi tentang wilayah dan zona yang didukung ALB, lihat Wilayah dan zona yang mendukung ALB.

      • Application Load Balancer mendukung deployment multi-zona. Jika wilayah saat ini mendukung dua zona atau lebih, pilih minimal dua vSwitch di zona berbeda untuk memastikan ketersediaan tinggi.

      spec.listeners

      Tidak

      Konfigurasikan port listener dan protokol untuk instans ALB. Contoh ini mengonfigurasi listener HTTP pada port 80.

      Listener mendefinisikan cara trafik memasuki load balancer. Jika Anda tidak menyertakan konfigurasi ini, Anda harus membuat listener untuk menggunakan ALB Ingress.

  4. Setelah konfigurasi selesai, klik Create. Pesan Created Successfully akan muncul.

  5. Verifikasi bahwa instans ALB telah dibuat.

    1. Masuk ke Konsol Application Load Balancer (ALB).

    2. Di bilah menu atas, pilih wilayah tempat instans berada.

    3. Pada halaman Instances, temukan instans ALB bernama alb-test. Hal ini menunjukkan bahwa instans berhasil dibuat.

kubectl

  1. Salin konten berikut ke file bernama alb-test.yaml untuk membuat ALBConfig.

    Referensi konfigurasi YAML

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb-demo
    spec:
      config:
        name: alb-test
        addressType: Internet
        zoneMappings:                          # Untuk memastikan ketersediaan tinggi, pilih minimal dua vSwitch di zona berbeda.
        - vSwitchId: vsw-uf6ccg2a9g71hx8go**** # Ganti dengan ID vSwitch aktual (di Zona 1).
        - vSwitchId: vsw-uf6nun9tql5t8nh15**** # Ganti dengan ID vSwitch aktual (di Zona 2, yang harus berbeda dari Zona 1).
      listeners:
        - port: 80
          protocol: HTTP

    Tabel berikut menjelaskan parameter yang dapat disesuaikan.

    Parameter

    Wajib

    Deskripsi

    metadata.name

    Ya

    Nama AlbConfig.

    Catatan

    Nama AlbConfig harus unik dalam kluster. Saat membuat AlbConfig, pastikan namanya unik untuk menghindari konflik penamaan.

    spec.config.name

    Tidak

    Nama instans ALB.

    spec.config.addressType

    Tidak

    Jenis jaringan instans ALB. Nilai yang valid:

    • Internet (default): Instans ALB bersifat publik dan dapat diakses dari Internet.

      Catatan

      Application Load Balancer menyediakan layanan yang menghadap Internet dengan mengaitkan Elastic IP Address (EIP). Jika Anda menggunakan instans ALB yang menghadap Internet, Anda akan dikenai biaya untuk instans EIP, bandwidth, dan transfer data. Untuk informasi selengkapnya, lihat Pay-as-you-go.

    • Intranet: Instans ALB bersifat privat dan hanya dapat diakses dalam VPC.

    spec.config.zoneMappings

    Ya

    Atur ID vSwitch ALB. Untuk informasi tentang cara membuat vSwitch, lihat Buat dan kelola vSwitch.

    Catatan
    • vSwitch yang ditentukan harus berada di zona yang didukung ALB dan dalam VPC yang sama dengan kluster. Untuk informasi tentang wilayah dan zona yang didukung ALB, lihat Wilayah dan zona yang mendukung ALB.

    • Application Load Balancer mendukung deployment multi-zona. Jika wilayah saat ini mendukung dua zona atau lebih, pilih minimal dua vSwitch di zona berbeda untuk memastikan ketersediaan tinggi.

    spec.listeners

    Tidak

    Konfigurasikan port listener dan protokol untuk instans ALB. Contoh ini mengonfigurasi listener HTTP pada port 80.

    Listener mendefinisikan cara trafik memasuki load balancer. Jika Anda tidak menyertakan konfigurasi ini, Anda harus membuat listener untuk menggunakan ALB Ingress.

  2. Jalankan perintah berikut untuk membuat ALBConfig.

    kubectl apply -f alb-test.yaml

    Output yang diharapkan:

    albconfig.alibabacloud.com/alb-demo created

    Output tersebut menunjukkan bahwa ALBConfig berhasil dibuat.

Langkah 3: Buat IngressClass

Setiap IngressClass harus berkorespondensi dengan satu AlbConfig.

Konsol

  1. Masuk ke Konsol ACS. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster target. Di panel navigasi kiri, pilih Workloads > Custom Resources.

  3. Pada tab CRDs, klik Create from YAML.

    1. Sample Template: Pilih Custom.

    2. Template: Masukkan kode file konfigurasi YAML.

      Referensi konfigurasi YAML

      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

      Tabel berikut menjelaskan parameter yang dapat disesuaikan.

      Parameter

      Wajib

      Deskripsi

      metadata.name

      Ya

      Nama IngressClass.

      Catatan

      Nama IngressClass harus unik dalam kluster. Saat membuat IngressClass, pastikan namanya unik untuk menghindari konflik penamaan.

      spec.parameters.name

      Ya

      Nama AlbConfig yang terkait.

  4. Setelah konfigurasi selesai, klik Create. Halaman akan menampilkan pesan yang menunjukkan bahwa pembuatan berhasil.

  5. Verifikasi bahwa IngressClass telah dibuat.

    1. Di panel navigasi kiri, pilih Workloads > Custom Resources.

    2. Klik tab Resource Object Browser.

    3. Di bilah pencarian API Group, masukkan IngressClass dan cari. Verifikasi bahwa IngressClass yang sesuai telah dibuat.

kubectl

  1. Buat file bernama alb.yaml dengan konten berikut untuk membuat IngressClass.

    Referensi konfigurasi YAML

    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

    Tabel berikut menjelaskan parameter yang dapat disesuaikan.

    Parameter

    Wajib

    Deskripsi

    metadata.name

    Ya

    Nama IngressClass.

    Catatan

    Nama IngressClass harus unik dalam kluster. Saat membuat IngressClass, pastikan namanya unik untuk menghindari konflik penamaan.

    spec.parameters.name

    Ya

    Nama AlbConfig yang terkait.

  2. Jalankan perintah berikut untuk membuat IngressClass.

    kubectl apply -f alb.yaml

    Output yang diharapkan:

    ingressclass.networking.k8s.io/alb created

Langkah 4: Buat Ingress

Konsol

  1. Masuk ke Konsol ACS. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster target. Di panel navigasi kiri, pilih Network > Ingresses.

  3. Pada halaman Ingresses, klik Create Ingress, lalu pada dialog Create Ingress, konfigurasikan routing.

    Item Konfigurasi

    Deskripsi

    Nilai Contoh

    Gateway Type

    Anda dapat memilih ALB atau MSE sebagai jenis gateway load balancing aplikasi.

    ALB Ingress

    Name

    Nama kustom untuk Ingress.

    cafe-ingress

    Ingress Class

    Kelas kustom untuk Ingress.

    alb

    Rules

    Klik + Add Rule untuk menambahkan beberapa aturan routing.

    • Domain Name: Nama domain kustom.

    • Path Mapping: Konfigurasikan item berikut.

      • Path: Path URL untuk mengakses layanan. Dalam contoh ini, tidak dikonfigurasi, sehingga menggunakan path root /.

      • Matching Rule: Mendukung Prefix, Exact, dan Default (ImplementationSpecific).

      • Service Name: Layanan target, yaitu Service di Kubernetes.

      • Port: Port yang perlu diekspos oleh layanan.

    • Ingress mendukung beberapa path di bawah nama domain yang sama. Klik + Add Path untuk menambahkan path.

    • Domain Name: demo.domain.ingress.top

    • Path Mapping:

      • Path: /tea

      • Match Type: ImplementationSpecific

      • Service Name: tea-svc

      • Port: 80

    • Path Mapping:

      • Path: /coffee

      • Match Type: ImplementationSpecific

      • Service Name: coffee-svc

      • Port: 80

    TLS Configuration

    Aktifkan konfigurasi TLS untuk mengonfigurasi layanan routing aman.

    • Domain Name: Nama domain kustom.

    • Secret: Pilih secret yang sesuai sesuai kebutuhan.

      Untuk membuat secret, lakukan langkah-langkah berikut.

      1. Di sebelah kanan Secret, klik Create.

      2. Pada dialog Create Secret, masukkan Name, Cert, dan Key kustom untuk secret tersebut, lalu klik OK.

      3. Dari daftar drop-down Secret, pilih secret yang telah dibuat.

    Klik + Add TLS Configuration untuk mengonfigurasi beberapa pengaturan TLS.

    Untuk informasi selengkapnya, lihat Konfigurasikan sertifikat HTTPS untuk komunikasi terenkripsi.

    Nonaktifkan TLS Configuration; TLS tidak diperlukan untuk contoh ini.

    More Configurations

    • Phased Release: Aktifkan sakelar phased release. Anda dapat mengatur aturan rilis bertahap berdasarkan header permintaan, cookie, dan bobot.

      Catatan

      Anda hanya dapat mengatur salah satu dari aturan header permintaan, cookie, atau bobot. Jika beberapa aturan diatur secara bersamaan, aturan tersebut akan dicocokkan dalam urutan header permintaan, cookie, dan bobot.

      • By request header: Membagi trafik berdasarkan header permintaan. Setelah diatur, anotasi alb.ingress.kubernetes.io/canary-by-header dan alb.ingress.kubernetes.io/canary-by-header-value akan ditambahkan.

      • By Cookie: Membagi trafik berdasarkan cookie. Setelah diatur, anotasi alb.ingress.kubernetes.io/canary-by-cookie akan ditambahkan.

      • By weight: Mengatur persentase permintaan ke layanan tertentu. Nilainya harus berupa bilangan bulat antara 0 hingga 100. Setelah diatur, anotasi alb.ingress.kubernetes.io/canary-weight akan ditambahkan.

    • Protocol: Mendukung layanan backend yang menggunakan protokol HTTPS dan gRPC. Setelah diatur, anotasi alb.ingress.kubernetes.io/backend-protocol akan ditambahkan.

    • Rewrite Path: Path dalam permintaan klien ditulis ulang sebelum permintaan dikirim ke layanan backend. Setelah diatur, anotasi alb.ingress.kubernetes.io/rewrite-target akan ditambahkan.

    Nonaktifkan rilis bertahap, dan pertahankan protokol dan rewrite path default; fitur-fitur ini tidak diperlukan untuk contoh ini.

    Custom Forwarding Rules

    Aktifkan aturan pengalihan kustom untuk manajemen detail halus terhadap lalu lintas masuk.

    Catatan

    Aturan pengalihan dapat memiliki maksimal 10 entri kondisi.

    • Dari daftar drop-down Forwarding Conditions, pilih salah satu berikut:

      • Domain Name:

        Mencocokkan nama domain permintaan. Jika beberapa nama domain diatur, mereka digabungkan dengan logika OR. Saat diatur, anotasi alb.ingress.kubernetes.io/conditions.host-example akan ditambahkan.

      • Path:

        Mencocokkan path permintaan. Jika beberapa path diatur, mereka digabungkan dengan logika OR. Saat diatur, anotasi alb.ingress.kubernetes.io/conditions.path-example akan ditambahkan.

      • HTTP Header:

        Mencocokkan header permintaan sebagai pasangan kunci-nilai. Misalnya, Key Is: headername, Value Is: headervalue1. Jika beberapa nilai header diatur, mereka digabungkan dengan logika OR. Saat diatur, anotasi alb.ingress.kubernetes.io/conditions.http-header-example akan ditambahkan.

    • Dari daftar drop-down Forwarding Actions, pilih salah satu berikut:

      • Forward To

        Meneruskan ke beberapa grup server backend. Untuk Service Name, pilih layanan target. Untuk Port, pilih nomor port target. Kemudian, konfigurasikan nilai bobot kustom.

        Catatan

        Jika Anda memilih Forward to, Anda tidak perlu mengonfigurasi Path Mapping dalam aturan.

      • Return Fixed Response

        Atur respons tetap yang akan dikembalikan ke klien oleh ALB. Anda dapat mengatur kode status respons, isi body, dan tipe konten. Konfigurasikan Response Status Code, Response Body Type (Optional), dan Response Body (Optional) sesuai kebutuhan.

        Response Body Type:

        • text/plain: Tipe konten teks biasa.

        • text/css: Konten CSS.

        • text/html: Konten HTML.

        • application/javascript: Konten JavaScript.

        • application/json: Tipe konten JSON.

    Aturan pengalihan kustom mendukung berbagai kondisi dan aksi pengalihan. Konfigurasikan kondisi pengalihan berdasarkan nama domain, path, dan Header HTTP, serta aksi pengalihan seperti meneruskan ke layanan atau mengembalikan respons tetap. Lihat Sesuaikan aturan pengalihan untuk ALB Ingress.

    Nonaktifkan aturan pengalihan kustom; fitur ini tidak diperlukan untuk contoh ini.

    Annotations

    Anda dapat menentukan nama dan nilai anotasi kustom, atau memilih/mencari anotasi untuk dikonfigurasi. Untuk informasi selengkapnya tentang anotasi Ingress, lihat Annotations.

    Tidak perlu konfigurasi; anotasi tidak diperlukan untuk contoh ini.

    Labels

    Label digunakan untuk menambahkan tag yang sesuai ke Ingress guna menunjukkan karakteristiknya.

    Tidak perlu konfigurasi; label tidak diperlukan untuk contoh ini.

  4. Setelah konfigurasi selesai, klik OK di pojok kiri bawah dialog Create Ingress.

  5. Verifikasi bahwa Ingress telah dibuat.

    1. Di panel navigasi kiri, pilih Network > Ingresses. Verifikasi bahwa Ingress bernama cafe-ingress telah dideploy.

    2. Di kolom Endpoints untuk cafe-ingress, lihat informasi endpoint.

kubectl

  1. Buat file bernama `cafe-ingress.yaml` dengan konten berikut untuk membuat Ingress.

    Referensi konfigurasi YAML

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

    Tabel berikut menjelaskan parameter yang dapat disesuaikan.

    Parameter

    Wajib

    Deskripsi

    metadata.name

    Ya

    Nama Ingress.

    Catatan

    Nama Ingress harus unik dalam kluster. Saat membuat Ingress, pastikan namanya unik untuk menghindari konflik penamaan.

    spec.ingressClassName

    Ya

    Nama IngressClass yang terkait.

    spec.rules.host

    Tidak

    Nama domain dari field `Host` pada Header HTTP. Atur ini ke nama domain kustom Anda.

    Saat Anda mengakses nama domain kustom di browser, misalnya "http://demo.domain.ingress.top", browser secara otomatis menambahkan header "Host: demo.domain.ingress.top" ke permintaan HTTP. Hal ini memungkinkan server mengidentifikasi hostname target dari header tersebut. Di Kubernetes, field `host` dalam aturan Ingress dicocokkan dengan header `Host` dari permintaan. Ketika ditemukan kecocokan, aturan Ingress meneruskan permintaan ke layanan backend yang sesuai.

    Catatan
    • Jika Anda mengonfigurasi nama domain kustom di sini, pastikan nama domain tersebut telah memiliki Pendaftaran ICP. Jika tidak, nama domain mungkin gagal di-resolve. Untuk informasi selengkapnya, lihat Proses Pendaftaran ICP.

    • Jika tidak dikonfigurasi, aturan Ingress akan mencocokkan semua permintaan yang mencapai Ingress Controller.

    spec.rules.http.paths.path

    Ya

    URL path pengalihan.

    spec.rules.http.paths.pathType

    Ya

    Aturan pencocokan URL. Untuk informasi selengkapnya, lihat Teruskan permintaan berdasarkan path URL.

    spec.rules.http.paths.backend.service.name

    Ya

    Masukkan nama Service yang telah Anda buat sebelumnya.

    spec.rules.http.paths.backend.service.port.number

    Ya

    Masukkan nomor port layanan dari Service yang telah Anda buat sebelumnya.

    Pengaturan nomor port ini penting karena menentukan port yang digunakan saat meneruskan ke layanan backend. Pastikan nomor port diatur dengan benar agar permintaan dapat diteruskan dan diproses dengan tepat oleh layanan backend.

  2. Jalankan perintah berikut untuk mengonfigurasi nama domain dan path yang mengekspos layanan coffee dan tea.

    kubectl apply -f cafe-ingress.yaml

    Output yang diharapkan:

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

    kubectl get ingress

    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

(Opsional) Langkah 5: Konfigurasikan resolusi nama domain

Jika Anda mengatur field spec.rules.host ke nama domain kustom saat membuat Ingress, tambahkan rekaman CNAME untuk mengarahkan nama domain tersebut ke nama DNS ALB. Kemudian akses layanan melalui nama domain kustom Anda.

  1. Masuk ke Konsol Container Service for Kubernetes (ACK).

  2. Klik nama kluster untuk membuka halaman manajemen kluster.

  3. Di panel navigasi kiri, pilih Network > Ingresses.

  4. Di kolom Endpoints untuk cafe-ingress, salin nama DNS-nya.

  5. Lakukan langkah-langkah berikut untuk menambahkan rekaman CNAME.

    1. Masuk ke Konsol Alibaba Cloud DNS.

    2. Pada halaman Domain Names, klik Add Domain Name.

    3. Pada dialog Add Domain Name, masukkan nama domain host, lalu klik OK.

      Penting

      Nama domain host harus telah lulus verifikasi rekaman TXT.

    4. Di kolom Actions untuk nama domain target, klik Configure.

    5. Pada halaman Configure, klik Add Record.

    6. Pada panel Add Record, konfigurasikan informasi berikut untuk menyelesaikan konfigurasi CNAME, lalu klik OK.

      Konfigurasi

      Deskripsi

      Type

      Dari daftar drop-down, pilih CNAME.

      Host

      Awalan nama domain, seperti www.

      Resolution Request Source

      Pilih Default.

      Value

      Masukkan alamat CNAME yang sesuai dengan nama domain, yaitu nama DNS yang telah Anda salin pada langkah sebelumnya.

      TTL

      Time to Live (TTL) adalah waktu cache untuk rekaman DNS di server DNS. Topik ini menggunakan nilai default.

Langkah 6: Uji penerusan trafik

Di browser, masukkan nama domain uji dan path URL untuk menguji apakah lalu lintas diteruskan dengan benar.

Catatan
  • Jika Anda mengonfigurasi nama domain kustom, nama domain uji adalah nama domain kustom Anda.

  • Jika Anda tidak mengonfigurasi nama domain kustom, nama domain uji adalah nama DNS endpoint dari cafe-ingress.

Contoh ini menggunakan demo.domain.ingress.top sebagai nama domain uji.

  1. Di browser, masukkan demo.domain.ingress.top/coffee. Antarmuka layanan backend yang sesuai dengan coffee-svc akan dikembalikan. image

  2. Di browser, masukkan demo.domain.ingress.top/tea. Antarmuka layanan backend yang sesuai dengan tea-svc akan dikembalikan.image

Referensi