全部产品
Search
文档中心

Container Compute Service:Memulai dengan ALB Ingresses

更新时间:Jul 06, 2025

Application Load Balancer (ALB) Ingress kompatibel dengan NGINX Ingress dan menyediakan pengalihan trafik yang lebih baik berdasarkan instance ALB. ALB Ingress mendukung pengalihan kompleks, penemuan sertifikat otomatis, serta protokol HTTP, HTTPS, dan Quick UDP Internet Connections (QUIC). ALB Ingress memenuhi kebutuhan aplikasi cloud-native untuk elastisitas ultra-tinggi dan penyeimbangan beban lalu lintas berat di Lapisan 7. Anda dapat mengonfigurasi ALB Ingress dalam kluster Alibaba Cloud Container Compute Service (ACS) untuk mengelola trafik. Topik ini menjelaskan cara menerapkan Layanan dan mengakses Layanan menggunakan ALB Ingress.

Cara Kerja ALB Ingress

Istilah terkait ALB Ingress:

  • Kontroler ALB Ingress: Komponen yang mengelola sumber daya Ingress. Kontroler ALB Ingress menggunakan API server untuk secara dinamis mendapatkan perubahan pada sumber daya Ingress dan AlbConfig, lalu memperbarui instance ALB. Berbeda dengan kontroler NGINX Ingress, kontroler ALB Ingress adalah bidang kontrol dari instance ALB. Ini mengelola instance ALB tetapi tidak mendistribusikan trafik. Trafik didistribusikan oleh instance ALB. Kontroler ALB Ingress menggunakan API server dalam kluster untuk mendapatkan perubahan pada sumber daya Ingress dan memperbarui instance ALB berdasarkan aturan routing Ingress.

  • AlbConfig: CustomResourceDefinition (CRD) yang dibuat oleh kontroler ALB Ingress. Parameter dalam AlbConfig menentukan konfigurasi instance ALB. Setiap AlbConfig sesuai dengan satu instance ALB. Instance ALB berfungsi sebagai titik masuk untuk mendistribusikan trafik ke layanan backend. Instance ALB sepenuhnya dikelola oleh ALB. Dibandingkan dengan kontroler NGINX Ingress, ALB Ingress bebas operasi & pemeliharaan dan sangat elastis.

  • IngressClass: Mendefinisikan hubungan antara Ingress dan AlbConfig.

  • Ingress: Objek sumber daya yang mendefinisikan aturan routing trafik eksternal dan aturan kontrol akses. Kontroler ALB Ingress memantau perubahan pada sumber daya Ingress dan memperbarui instance ALB untuk mendistribusikan trafik.

  • Service: Dalam Kubernetes, pod adalah sumber daya sementara yang bervariasi. Service adalah titik masuk terpadu ke pod yang melayani fitur yang sama. Aplikasi lain atau Service dapat berkomunikasi dengan pod melalui alamat IP virtual dan port Service tanpa khawatir tentang perubahan apa pun pada pod.

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

Batasan

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

Skenario

Dalam contoh berikut, Layanan NGINX diterapkan pada empat pod. Topik ini menggunakan contoh tersebut untuk menjelaskan cara mengonfigurasi ALB Ingress untuk mengarahkan permintaan yang ditujukan ke nama domain yang sama tetapi jalur URL yang berbeda.

Permintaan

Layanan Tujuan

demo.domain.ingress.top/coffee

Layanan coffee

demo.domain.ingress.top/tea

Layanan tea

Sebelum Memulai

  • Sebuah kluster ACS telah dibuat. Untuk informasi lebih lanjut, lihat Buat kluster ACS.

  • Dua vSwitch dibuat di zona berbeda dari virtual private cloud (VPC) tempat kluster Anda berada. Untuk informasi lebih lanjut, lihat Buat dan kelola vSwitch.

Langkah 1: Terapkan Layanan Backend

Konsol ACS

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

  2. Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik ID-nya. Di panel navigasi kiri halaman detail kluster, pilih Workloads > Deployments.

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

  4. Pergi ke halaman Create.

    1. Sample Template: Pilih Custom.

    2. Template: Salin dan tempel kode berikut ke editor kode. File YAML ini digunakan untuk menerapkan dua Deployment bernama coffee dan tea, serta dua Layanan bernama coffee-svc dan tea-svc.

      Lihat file 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 akan muncul.

  6. Verifikasi bahwa Deployment dan Layanan telah dibuat.

    1. Di panel navigasi kiri, pilih Workloads > Deployments. Deployment bernama coffee dan tea akan ditampilkan.

    2. Di panel navigasi kiri, pilih Network > Services. Layanan bernama coffee-svc dan tea-svc akan ditampilkan.

kubectl

  1. Buat file bernama cafe-service.yaml dan salin konten berikut ke dalam file. File ini digunakan untuk menerapkan dua Deployment bernama coffee dan tea dan dua Layanan bernama coffee-svc dan tea-svc.

    Lihat file 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 menerapkan Deployment dan Layanan:

    kubectl apply -f cafe-service.yaml

    Keluaran yang diharapkan:

    deployment "coffee" created
    service "coffee-svc" created
    deployment "tea" created
    service "tea-svc" created
  3. Lihat status Deployment dan Layanan.

    1. Jalankan perintah berikut untuk melihat status Deployment:

      kubectl get deployment

      Keluaran yang diharapkan:

      NAME                             READY   UP-TO-DATE   AVAILABLE   AGE
      coffee                           2/2     2            2           2m26s
      tea                              2/2     2            2           2m26s
    2. Jalankan perintah berikut untuk melihat status Layanan:

      kubectl get svc

      Keluaran yang diharapkan:

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

Langkah 2: Buat AlbConfig

Konsol ACS

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

  2. Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik ID-nya. Di panel navigasi kiri halaman detail kluster, pilih Workloads > Custom Resources.

  3. Klik Create from YAML di pojok kanan atas.

    1. Sample Template: Pilih Custom dari daftar drop-down.

    2. Template: Salin dan tempel kode berikut ke editor kode.

      Lihat file konfigurasi YAML

      apiVersion: alibabacloud.com/v1
      kind: AlbConfig
      metadata:
        name: alb-demo
      spec:
        config:
          name: alb-test
          addressType: Internet
          zoneMappings:
          - vSwitchId: vsw-uf6ccg2a9g71hx8go**** # ID vSwitch. Konfigurasikan parameter ini berdasarkan kebutuhan bisnis Anda.
          - vSwitchId: vsw-uf6nun9tql5t8nh15**** # ID vSwitch. Konfigurasikan parameter ini berdasarkan kebutuhan bisnis Anda.
        listeners:
          - port: 80
            protocol: HTTP

      Tabel berikut menjelaskan parameter yang dapat Anda konfigurasikan.

      Parameter

      Wajib

      Deskripsi

      metadata.name

      Ya

      Nama AlbConfig.

      Catatan

      Nama AlbConfig harus unik dalam kluster. Oleh karena itu, saat membuat AlbConfig, pastikan nama AlbConfig unik untuk mencegah konflik nama.

      spec.config.name

      Tidak

      Nama instance ALB.

      spec.config.addressType

      Tidak

      Tipe jaringan instance ALB. Nilai valid:

      • Internet (default): Menghadap internet. Instance ALB yang menghadap internet menyediakan layanan ke internet dan dapat diakses melalui internet.

        Catatan

        Untuk memungkinkan instance ALB menyediakan layanan yang menghadap internet, instance ALB perlu dikaitkan dengan alamat IP elastis (EIP). Jika Anda menggunakan instance ALB yang menghadap internet, Anda akan dikenakan biaya instans dan bandwidth atau transfer data untuk EIP. Untuk informasi lebih lanjut, lihat Bayar sesuai pemakaian.

      • Intranet: Menghadap internal. Instance ALB yang menghadap internal menyediakan layanan dalam VPC dan tidak dapat diakses melalui internet.

      spec.config.zoneMappings

      Ya

      ID vSwitch yang dikaitkan dengan instance ALB. Untuk informasi lebih lanjut tentang cara membuat vSwitch, lihat Buat dan kelola vSwitch.

      Catatan
      • vSwitch yang ditentukan harus ditempatkan di zona yang didukung oleh instance ALB dan ditempatkan di VPC yang sama dengan kluster. Untuk informasi lebih lanjut tentang wilayah dan zona yang didukung oleh ALB, lihat Wilayah dan zona yang didukung oleh ALB.

      • ALB mendukung penyebaran multi-zona. Jika wilayah saat ini mendukung dua zona atau lebih, pilih vSwitch di setidaknya dua zona untuk memastikan ketersediaan tinggi.

      spec.listeners

      Tidak

      Port dan protokol listener instance ALB. Dalam contoh ini, listener HTTP yang menggunakan port 80 dikonfigurasikan.

      Listener mendefinisikan bagaimana ALB menerima trafik. Kami sarankan Anda mempertahankan konfigurasi listener. Jika tidak, Anda harus membuat listener sebelum dapat menggunakan ALB Ingress.

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

  5. Verifikasi bahwa instance ALB telah dibuat.

    1. Masuk ke Konsol ALB.

    2. Di bilah navigasi atas, pilih wilayah tempat instance ALB diterapkan.

    3. Di halaman Instances, pastikan instance ALB bernama alb-test ditampilkan dalam daftar.

kubectl

  1. Buat file bernama alb-test.yaml dan tambahkan konten berikut ke dalam file. File ini digunakan untuk membuat AlbConfig.

    Lihat file konfigurasi YAML

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb-demo
    spec:
      config:
        name: alb-test
        addressType: Internet
        zoneMappings:
        - vSwitchId: vsw-uf6ccg2a9g71hx8go**** # ID vSwitch. Konfigurasikan parameter ini berdasarkan kebutuhan bisnis Anda.
        - vSwitchId: vsw-uf6nun9tql5t8nh15**** # ID vSwitch. Konfigurasikan parameter ini berdasarkan kebutuhan bisnis Anda.
      listeners:
        - port: 80
          protocol: HTTP

    Tabel berikut menjelaskan parameter yang dapat Anda konfigurasikan.

    Parameter

    Wajib

    Deskripsi

    metadata.name

    Ya

    Nama AlbConfig.

    Catatan

    Nama AlbConfig harus unik dalam kluster. Oleh karena itu, saat membuat AlbConfig, pastikan nama AlbConfig unik untuk mencegah konflik nama.

    spec.config.name

    Tidak

    Nama instance ALB.

    spec.config.addressType

    Tidak

    Tipe jaringan instance ALB. Nilai valid:

    • Internet (default): Menghadap internet. Instance ALB yang menghadap internet menyediakan layanan ke internet dan dapat diakses melalui internet.

      Catatan

      Untuk memungkinkan instance ALB menyediakan layanan yang menghadap internet, instance ALB perlu dikaitkan dengan alamat IP elastis (EIP). Jika Anda menggunakan instance ALB yang menghadap internet, Anda akan dikenakan biaya instans dan bandwidth atau transfer data untuk EIP. Untuk informasi lebih lanjut, lihat Bayar sesuai pemakaian.

    • Intranet: Menghadap internal. Instance ALB yang menghadap internal menyediakan layanan dalam VPC dan tidak dapat diakses melalui internet.

    spec.config.zoneMappings

    Ya

    ID vSwitch yang dikaitkan dengan instance ALB. Untuk informasi lebih lanjut tentang cara membuat vSwitch, lihat Buat dan kelola vSwitch.

    Catatan
    • vSwitch yang ditentukan harus ditempatkan di zona yang didukung oleh instance ALB dan ditempatkan di VPC yang sama dengan kluster. Untuk informasi lebih lanjut tentang wilayah dan zona yang didukung oleh ALB, lihat Wilayah dan zona yang didukung oleh ALB.

    • ALB mendukung penyebaran multi-zona. Jika wilayah saat ini mendukung dua zona atau lebih, pilih vSwitch di setidaknya dua zona untuk memastikan ketersediaan tinggi.

    spec.listeners

    Tidak

    Port dan protokol listener instance ALB. Dalam contoh ini, listener HTTP yang menggunakan port 80 dikonfigurasikan.

    Listener mendefinisikan bagaimana ALB menerima trafik. Kami sarankan Anda mempertahankan konfigurasi listener. Jika tidak, Anda harus membuat listener sebelum dapat menggunakan ALB Ingress.

  2. Jalankan perintah berikut untuk membuat AlbConfig:

    kubectl apply -f alb-test.yaml

    Keluaran yang diharapkan:

    albconfig.alibabacloud.com/alb-demo created

    Keluaran menunjukkan bahwa AlbConfig telah dibuat.

Langkah 3: Buat IngressClass

Kami sarankan Anda membuat IngressClass untuk setiap AlbConfig.

Konsol ACS

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

  2. Di halaman Clusters, temukan kluster yang ingin dikelola dan klik ID-nya. Di panel navigasi kiri halaman detail kluster, pilih Workloads > Custom Resources.

  3. Klik Create from YAML di pojok kanan atas.

    1. Sample Template: Pilih Custom dari daftar drop-down.

    2. Template: Salin dan tempel kode berikut ke editor kode.

      Lihat file 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 dikonfigurasikan.

      Parameter

      Wajib

      Deskripsi

      metadata.name

      Ya

      Nama IngressClass.

      Catatan

      Nama IngressClass harus unik dalam kluster. Oleh karena itu, saat membuat IngressClass, pastikan nama IngressClass unik untuk mencegah konflik nama.

      spec.parameters.name

      Ya

      Nama AlbConfig yang terkait.

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

  5. Verifikasi bahwa IngressClass telah dibuat.

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

    2. Klik tab Resource Objects.

    3. Di kotak pencarian API Group, masukkan IngressClass. IngressClass yang dibuat akan ditampilkan.

kubectl

  1. Buat file bernama alb.yaml dan tambahkan konten berikut ke dalam file:

    Lihat file 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 dikonfigurasikan.

    Parameter

    Wajib

    Deskripsi

    metadata.name

    Ya

    Nama IngressClass.

    Catatan

    Nama IngressClass harus unik dalam kluster. Oleh karena itu, saat membuat IngressClass, pastikan nama IngressClass unik untuk mencegah konflik nama.

    spec.parameters.name

    Ya

    Nama AlbConfig yang terkait.

  2. Jalankan perintah berikut untuk membuat sumber daya IngressClass:

      kubectl apply -f alb.yaml

    Keluaran yang diharapkan:

    ingressclass.networking.k8s.io/alb created

Langkah 4: Buat Ingress

Konsol ACS

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

  2. Di halaman Kluster, temukan kluster yang ingin dikelola dan klik namanya. Di panel navigasi kiri, pilih Network > Ingresses.

  3. Di halaman Ingresses, klik Create Ingress. Di kotak dialog Create Ingress, konfigurasikan parameter yang diperlukan.

    Parameter

    Deskripsi

    Contoh

    Gateway Type

    Anda dapat memilih ALB atau MSE Ingress berdasarkan kebutuhan bisnis Anda.

    ALB

    Name

    Tentukan nama Ingress.

    cafe-ingress

    Ingress Class

    Tentukan kelas Ingress.

    alb

    Rules

    Klik +Add Rule untuk menambahkan aturan Ingress.

    • Domain Name: Masukkan nama domain kustom.

    • Mappings: Tentukan parameter berikut:

      • Path: Masukkan path URL dari Layanan backend. Dalam contoh ini, path root / digunakan.

      • Rule: Anda dapat memilih Prefix (Prefix-based Match), Exact (Exact Match), atau ImplementationSpecific (Default Value).

      • Service: Pilih Layanan backend.

      • Port: Tentukan port layanan yang ingin Anda paparkan.

    • Anda dapat mengonfigurasi beberapa path untuk nama domain. Klik + Add untuk menambahkan path.

    • Domain Name: demo.domain.ingress.top

    • Mappings:

      • Path: /tea

      • Rule: ImplementationSpecific. Ini adalah nilai default.

      • Service: tea-svc.

      • Port: 80

    • Mappings:

      • Path: /coffee

      • Rule: ImplementationSpecific. Ini adalah nilai default.

      • Service: coffee-svc

      • Port: 80.

    TLS Settings

    Menentukan apakah akan mengaktifkan autentikasi TLS. Anda dapat mengaktifkan autentikasi TLS untuk Ingress.

    • Domain Name: Masukkan nama domain kustom.

    • Secret: Pilih Secret yang ingin digunakan.

      Jika Anda ingin membuat Rahasia, lakukan langkah-langkah berikut:

      1. Klik Create di sebelah kanan Secret.

      2. Di kotak dialog Create Secret, konfigurasikan parameter Name, Cert, dan Key. Lalu, klik OK.

      3. Pilih Rahasia yang Anda buat dari daftar drop-down Secret.

    Anda dapat mengklik + Add untuk menambahkan lebih banyak sertifikat TLS.

    Untuk informasi lebih lanjut, lihat Gunakan Ingress ALB untuk mengonfigurasi sertifikat untuk listener HTTPS.

    Nonaktifkan TLS Settings. Dalam contoh ini, Anda tidak perlu mengonfigurasi sertifikat TLS.

    More

    • Canary Release: Aktifkan rilis canary. Anda dapat mengonfigurasi aturan rilis canary berdasarkan header permintaan, cookie, dan bobot.

      Catatan

      Anda dapat mengonfigurasi aturan rilis canary berdasarkan hanya salah satu elemen berikut: header permintaan, cookie, dan bobot. Anda juga dapat mengonfigurasi aturan rilis canary berdasarkan header permintaan, cookie, dan bobot secara bersamaan. Dalam hal ini, header permintaan, cookie, dan bobot berlaku dalam urutan prioritas menurun.

      • Based on Request Header: Mendistribusikan trafik berdasarkan header permintaan dengan menambahkan anotasi nginx.ingress.kubernetes.io/canary-by-header, nginx.ingress.kubernetes.io/canary-by-header-value, atau nginx.ingress.kubernetes.io/canary-by-header-pattern.

      • Based on Cookie: Mendistribusikan trafik berdasarkan cookie dengan menambahkan anotasi nginx.ingress.kubernetes.io/canary-by-cookie.

      • Based on Weight: Mendistribusikan trafik berdasarkan bobot Layanan (bilangan bulat dari 0 hingga 100) dengan menambahkan anotasi nginx.ingress.kubernetes.io/canary-weight.

    • Protocol: Pilih protokol yang digunakan oleh Layanan backend dengan menambahkan anotasi nginx.ingress.kubernetes.io/backend-protocol.

      HTTP, HTTPS, gRPC, dan gRPCS didukung.

    • Rewrite Path: Tambahkan anotasi nginx.ingress.kubernetes.io/rewrite-target untuk menulis ulang path dalam permintaan klien sebelum permintaan diteruskan ke Layanan backend.

    Nonaktifkan Rilis Canary. Gunakan nilai default dari parameter Protokol dan Tulis Ulang Path. Dalam contoh ini, Anda tidak perlu mengonfigurasi parameter ini.

    Custom Forwarding Rules

    Anda dapat mengaktifkan aturan pengalihan kustom untuk mengelola trafik masuk secara lebih rinci.

    Catatan

    Anda dapat menambahkan hingga 10 kondisi ke aturan pengalihan.

    • Jenis kondisi berikut tersedia di daftar drop-down Add Condition:

      • Domain name:

        Hanya permintaan yang berisi satu atau beberapa nama domain tertentu yang dirutekan. Hubungan logis antara beberapa nama domain adalah ATAU. Setelah Anda menentukan nama domain, sistem menambahkan anotasi alb.ingress.kubernetes.io/conditions.host-example.

      • Path:

        Hanya permintaan yang berisi satu atau beberapa path tertentu yang dirutekan. Hubungan logis antara beberapa path adalah ATAU. Setelah Anda menentukan path, sistem menambahkan anotasi alb.ingress.kubernetes.io/conditions.path-example.

      • HTTP Header:

        Hanya permintaan yang berisi satu atau beberapa header HTTP tertentu yang dirutekan. Setiap header permintaan HTTP adalah pasangan kunci-nilai. Sebagai contoh, Anda dapat mengatur key menjadi headername dan value menjadi headervalue1. Jika Anda menentukan beberapa nilai header, hubungan logis antara nilai header tersebut adalah ATAU. Setelah Anda menentukan header, sistem menambahkan anotasi alb.ingress.kubernetes.io/conditions.http-header-example.

    • Tindakan berikut tersedia di daftar drop-down Action:

      • Forward To

        Meneruskan trafik masuk ke beberapa grup server backend. Untuk meneruskan trafik masuk, lakukan operasi berikut: Pilih Layanan yang ingin Anda akses dari daftar drop-down Service. Pilih port yang digunakan untuk terhubung ke Layanan dari daftar drop-down Port. Tentukan bobot kustom untuk setiap grup server backend.

        Catatan

        Jika Anda memilih Teruskan Ke dari daftar drop-down Tindakan, Anda tidak perlu mengonfigurasi parameter Pemetaan untuk aturan tersebut.

      • Return Fixed Response

        Menentukan bahwa konten tetap dikembalikan ke klien oleh instance ALB. Anda dapat menentukan kode status, konten, dan tipe konten yang dikembalikan ke klien. Konfigurasikan parameter Response Status Code, Response Content Type (Optional), dan Response Content (Optional) berdasarkan kebutuhan bisnis Anda.

        Nilai valid untuk parameter Tipe Konten Respon:

        • text/plain: menunjukkan bahwa kontennya dalam format teks biasa.

        • text/css: menunjukkan bahwa kontennya dalam format XML.

        • text/html: menunjukkan bahwa kontennya dalam format HTML.

        • application/javascript: menunjukkan bahwa kontennya dalam format JavaScript.

        • application/json: menunjukkan bahwa kontennya dalam format JSON.

    Anda dapat menentukan beberapa kondisi dan tindakan dalam aturan pengalihan kustom. Anda dapat mengonfigurasi nama domain, jalur, dan header permintaan HTTP sebagai kondisi pengalihan serta mengarahkan lalu lintas arah masuk ke grup server backend atau mengembalikan konten tetap ke klien. Untuk informasi lebih lanjut, lihat Sesuaikan aturan routing dari ALB Ingress.

    Nonaktifkan Aturan Pengalihan Kustom. Dalam contoh ini, Anda tidak perlu mengonfigurasi aturan pengalihan kustom.

    Annotations

    Anda dapat memasukkan nama anotasi kustom dan nilai. Anda juga dapat memilih atau mencari anotasi berdasarkan nama dari daftar drop-down. Untuk informasi lebih lanjut tentang anotasi Ingress, lihat Anotasi.

    Klik +Add Annotation untuk menambahkan anotasi. ACK tidak membatasi jumlah anotasi Ingress yang dapat Anda tambahkan.

    Dalam contoh ini, Anda tidak perlu mengonfigurasi anotasi.

    Label

    Anda dapat menambahkan label untuk mendeskripsikan karakteristik Ingress.

    Klik +Add Label untuk menambahkan label. Tidak ada batasan jumlah label Ingress yang dapat ditambahkan.

    Dalam contoh ini, Anda tidak perlu mengonfigurasi label.

  4. Setelah selesai mengonfigurasi, klik OK di pojok kiri bawah panel Create Ingress.

  5. Verifikasi bahwa Ingress telah berhasil dibuat.

    1. Di panel sisi kiri, pilih Network > Ingresses. Ingress bernama cafe-ingress akan ditampilkan.

    2. Di kolom Endpoint untuk cafe-ingress, periksa titik akhir yang tersedia.

kubectl

  1. Buat file bernama cafe-ingress.yaml dan tambahkan konten berikut. File ini digunakan untuk membuat Ingress.

    Lihat file konfigurasi YAML

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

    Tabel berikut menjelaskan parameter yang dapat dikonfigurasi.

    Parameter

    Wajib

    Deskripsi

    metadata.name

    Ya

    Nama Ingress.

    Catatan

    Nama Ingress harus unik dalam kluster. Oleh karena itu, saat membuat Ingress, pastikan nama Ingress unik untuk mencegah konflik nama.

    spec.ingressClassName

    Ya

    Nama IngressClass yang terkait.

    spec.rules.host

    Tidak

    Nama domain dari header host HTTP. Anda harus mengatur parameter ini ke nama domain kustom.

    Saat Anda mengakses nama domain, seperti http://demo.domain.ingress.top, di browser, browser secara otomatis menambahkan header Host: demo.domain.ingress.top ketika permintaan HTTP dikirim. Dengan cara ini, server mengidentifikasi tujuan host berdasarkan header. Di Kubernetes, bidang host dalam aturan Ingress digunakan untuk mencocokkan header host dalam permintaan. Jika header host cocok, permintaan dikirim ke Layanan backend yang sesuai.

    Catatan
    • Jika Anda menentukan nama domain kustom, pastikan bahwa pendaftaran ICP (Internet Content Provider) untuk nama domain tersebut sudah lengkap. Jika tidak, nama domain mungkin gagal diselesaikan. Untuk informasi lebih lanjut, lihat Proses pendaftaran ICP.

    • Jika parameter ini tidak dikonfigurasi, aturan Ingress cocok dengan semua permintaan yang dikirim ke kontroler Ingress.

    spec.rules.http.paths.path

    Ya

    Path URL.

    spec.rules.http.paths.pathType

    Ya

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

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

    Ya

    Nama Layanan yang Anda buat.

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

    Ya

    Nomor port Layanan yang Anda buat.

    Port ini penting karena port digunakan untuk merutekan permintaan ke Layanan backend. Pastikan port valid untuk memastikan bahwa permintaan dapat dirutekan ke Layanan backend dan diproses sesuai harapan.

  2. Jalankan perintah berikut untuk mengonfigurasi nama domain yang dapat diakses secara eksternal dan path untuk Layanan coffee dan tea:

    kubectl apply -f cafe-ingress.yaml

    Keluaran yang diharapkan:

    ingress.networking.k8s.io/cafe-ingress created
  3. (Opsional) Jalankan perintah berikut untuk menanyakan nama domain instance ALB:

    kubectl get ingress

    Keluaran 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 5: (Opsional) Konfigurasikan resolusi nama domain

Jika Anda mengatur parameter spec.rules.host ke nama domain kustom saat membuat Ingress, tambahkan catatan CNAME untuk memetakan nama domain tersebut ke nama domain instance ALB. Setelah itu, Anda dapat mengakses layanan menggunakan nama domain kustom.

  1. Masuk ke Konsol ACS.

  2. Klik nama kluster untuk masuk ke halaman detail kluster.

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

  4. Di kolom Endpoint dari cafe-ingress, salin nama domain.

  5. Ikuti langkah-langkah berikut untuk membuat catatan CNAME:

    1. Masuk ke Konsol DNS Alibaba Cloud.

    2. Di halaman Domain Name Resolution, klik Add Domain Name.

    3. Dalam kotak dialog Add Domain Name, masukkan nama domain host Anda, lalu klik OK.

      Penting

      Sebelum membuat catatan CNAME, gunakan catatan TXT untuk memverifikasi kepemilikan nama domain.

    4. Temukan nama domain yang ingin dikelola dan klik DNS Settings di kolom Actions.

    5. Di halaman DNS Settings, klik Add DNS Record.

    6. Di panel Add DNS Record, konfigurasikan parameter yang diperlukan dan klik OK.

      Parameter

      Deskripsi

      Record Type

      Tipe catatan DNS. Pilih CNAME dari daftar drop-down.

      Hostname

      Masukkan awalan nama domain, seperti www.

      DNS Request Source

      Wilayah dari mana permintaan DNS dikirim. Pilih Default dari daftar drop-down.

      Record Value

      CNAME. CNAME adalah nama domain yang Anda salin.

      TTL

      Waktu hidup (TTL) catatan CNAME yang akan disimpan di cache pada server DNS. Dalam contoh ini, nilai default digunakan.

Langkah 6: Uji pengalihan trafik

Masukkan "nama domain uji + path URL" di bilah alamat browser untuk memverifikasi apakah trafik dapat dialihkan ke Layanan yang ditentukan.

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

  • Jika Anda belum mengonfigurasi nama domain kustom, nama domain uji adalah titik akhir cafe-ingress.

Dalam contoh ini, demo.domain.ingress.top digunakan.

  1. Masukkan demo.domain.ingress.top/coffee di bilah alamat browser. Halaman Layanan coffee-svc akan ditampilkan. image

  2. Masukkan demo.domain.ingress.top/tea di bilah alamat browser. Halaman Layanan tea-svc akan ditampilkan.image

Referensi