全部产品
Search
文档中心

Container Service for Kubernetes:konfigurasikan pendengar ALB menggunakan AlbConfig

更新时间:Feb 12, 2026

Bidang Listeners dalam AlbConfig digunakan untuk mengonfigurasi pendengar (listeners) pada Application Load Balancer (ALB). Topik ini menjelaskan bidang Listeners serta cara membuat, memodifikasi, dan memperbarui pendengar menggunakan AlbConfig.

Prasyarat

Deskripsi Bidang Listeners

Terminologi

  • File konfigurasi objek: File yang mendefinisikan dan menjelaskan objek Kubernetes. File ini berisi spesifikasi dan informasi konfigurasi objek tersebut.

  • File konfigurasi objek yang ada: File konfigurasi objek yang telah diterapkan ke kluster Kubernetes.

  • Bidang last-applied-configuration: Bidang anotasi dalam objek Kubernetes yang mencatat informasi konfigurasi terakhir yang diterapkan pada objek tersebut. Bidang ini tidak diperbarui secara real time ketika konfigurasi objek berubah.

Metode Pembaruan Bidang Listeners

Bidang Listeners merupakan konfigurasi bertipe array yang biasanya diperbarui dengan metode penggantian. Saat Anda memperbarui bidang Listeners, konfigurasi baru sepenuhnya menggantikan konfigurasi yang ada. Tabel berikut memberikan informasi lebih lanjut.

Nomor urut

Kondisi

Hasil

Apakah objek ada dalam file konfigurasi objek?

Apakah objek ada dalam file konfigurasi objek yang ada?

Apakah objek ada dalam bidang last-applied-configuration?

Ya

Ya

- (Tidak berlaku)

Terapkan nilai dari file konfigurasi objek ke file konfigurasi yang ada untuk memperbarui bidang tertentu pada objek yang ada.

Ya

Tidak

- (Tidak berlaku)

Gunakan nilai dari file konfigurasi objek untuk membuat objek baru, bukan memperbarui konfigurasi objek yang ada.

Tidak

- (Tidak berlaku)

Ya

Hapus suatu bidang dari file konfigurasi objek yang ada. Artinya, bidang tersebut dihapus dari konfigurasi objek yang ada, dan mungkin diatur ulang ke nilai default-nya.

Tidak

Ya

Tidak

Menunjukkan penghapusan suatu bidang dari file konfigurasi objek yang ada.

Contoh Deskripsi

Blok kode berikut menampilkan contoh konfigurasi untuk bidang Listeners dalam file konfigurasi objek, file konfigurasi objek yang ada, dan bidang last-applied-configuration:

# File konfigurasi objek menyediakan nilai konfigurasi yang diinginkan berikut.
  listeners:
  - port: 8001
    protocol: HTTP
  - port: 8003
    protocol: HTTP
  - port: 8005 # Tambahkan 8005
    protocol: HTTP

# File konfigurasi objek yang ada menunjukkan konfigurasi objek yang benar-benar ada.
  listeners:
  - port: 8001
    protocol: HTTP
  - port: 8002  # Hapus 8002
    protocol: HTTP
  - port: 8003
    protocol: HTTP
  - port: 8004  # Hapus 8004
    protocol: HTTP
    
# last-applied-configuration mencatat konfigurasi terakhir yang diterapkan pada objek.
  listeners:
  - port: 8001 
    protocol: HTTP
  - port: 8002  # Hapus 8002
    protocol: HTTP
  - port: 8003
    protocol: HTTP

Bidang Listeners pada AlbConfig diperbarui sebagai berikut:

# Hasil file konfigurasi Listeners
  listeners:
  - port: 8001
    protocol: HTTP
  - port: 8003
    protocol: HTTP
  - port: 8005
    protocol: HTTP
  • 8001 dan 8003 memenuhi kondisi ① dan dipertahankan.

  • 8005 memenuhi kondisi ② dan ditambahkan.

  • 8002 memenuhi kondisi ③ dan dihapus.

  • 8004 memenuhi kondisi ④ dan dihapus.

Buat Pendengar

Pendengar (listener) adalah titik masuk tingkat atas bagi instans ALB untuk memproses lalu lintas. Listener memungkinkan instans ALB mendistribusikan lalu lintas secara cerdas berdasarkan informasi lapisan aplikasi.

Konsol

Anda dapat mengatur parameter port dan protocol dalam AlbConfig untuk membuat pendengar. Parameter port dan protocol merupakan properti unik dari setiap pendengar. Jika Anda mengubah nilai port, protocol, atau properti pendengar lainnya, sistem akan menghapus pendengar yang ada dan membuat pendengar baru.

Catatan

Protokol HTTP secara otomatis mendukung WebSocket. Tidak diperlukan konfigurasi khusus.

  1. Pada tab Resource Object Browser, masukkan AlbConfig di kotak pencarian dan klik AlbConfig dalam hasil pencarian.

  2. Pada halaman AlbConfig, temukan sumber daya AlbConfig target (default-nya adalah alb) dan klik Edit YAML di kolom Actions.

  3. Pada panel View YAML, tambahkan bidang spec.listeners.port dan spec.listeners.protocol, lalu klik OK.

    image

kubectl

Anda dapat mengatur parameter port dan protocol dalam AlbConfig untuk membuat pendengar. Parameter port dan protocol merupakan properti unik dari setiap pendengar. Jika Anda mengubah nilai port, protocol, atau properti pendengar lainnya, sistem akan menghapus pendengar yang ada dan membuat pendengar baru.

  1. Jalankan perintah kubectl edit albconfig <Albconfig_Name>.

    Catatan

    Protokol HTTP secara otomatis mendukung WebSocket. Tidak diperlukan konfigurasi khusus.

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb-demo
    spec:
      config:
      ...
      listeners:
        - port: 80
          protocol: HTTP # Opsi protokol adalah HTTP, HTTPS, dan QUIC.
      ...

Tentukan Sertifikat

Untuk mengaktifkan enkripsi dan verifikasi identitas pada protokol HTTPS, jalankan perintah kubectl edit albconfig <AlbConfig_Name>. Dalam AlbConfig, atur parameter certificates ke ID sertifikat. Pengaturan ini akan menetapkan sertifikat ke pendengar untuk mengenkripsi dan mendekripsi lalu lintas HTTPS.

Jika Anda tidak menentukan sertifikat dalam konfigurasi, pendengar tidak langsung dibuat bersama ALB. Sebaliknya, pendengar akan dibuat setelah Ingress dikaitkan dan sertifikat ditemukan secara otomatis berdasarkan nama domain.

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

Penting

ALB menetapkan sertifikat pertama sebagai sertifikat default. ALB hanya menggunakan sertifikat lain untuk enkripsi permintaan jika sertifikat default telah kedaluwarsa atau tidak lagi berlaku.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb-demo
spec:
  config:
  ...
  listeners:
  - caEnabled: false
    certificates:
    - CertificateId: 756****-cn-hangzhou # ID Sertifikat.
      IsDefault: true
    port: 443
    protocol: HTTPS
  ...

Tentukan Kebijakan Keamanan TLS

Anda dapat menjalankan perintah kubectl edit albconfig <Albconfig_Name>. Dalam sumber daya AlbConfig, atur parameter securityPolicyId ke ID kebijakan keamanan. Saat mengonfigurasi listener HTTPS dalam AlbConfig, Anda dapat menentukan kebijakan keamanan TLS, yang mencakup kebijakan kustom dan kebijakan default. Untuk informasi selengkapnya, lihat TLS security policy.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb-demo
spec:
  config:
  ...
  listeners:
  - port: 443
    protocol: HTTPS
    securityPolicyId: tls_cipher_policy_1_1 # ID kebijakan keamanan.
  ...

Atur Timeout Permintaan Pendengar

Jalankan perintah kubectl edit albconfig <Albconfig_Name>. Pada AlbConfig, atur parameter requestTimeout untuk menentukan waktu tunggu permintaan pada pendengar. Pengaturan ini mencegah klien menunggu terlalu lama terhadap permintaan yang tidak merespons.

Timeout permintaan adalah waktu maksimum yang ditunggu Server Load Balancer (SLB) untuk respons dari server backend setelah menerima permintaan klien. Jika tidak ada respons dalam waktu tersebut, instans SLB berhenti menunggu dan mengembalikan error HTTP 504 ke klien.

  • Nilai timeout dalam satuan detik. Nilainya harus berupa bilangan bulat antara 1 hingga 600. Untuk menggunakan timeout yang lebih lama, Anda dapat mengajukan peningkatan kuota di Quota Center.

  • Jika Anda tidak mengatur timeout permintaan, nilai default 60 detik akan digunakan.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    requestTimeout: 60 # Atur timeout permintaan koneksi untuk pendengar. Nilai valid: 1 hingga 600. Jika diabaikan, timeout default 60 detik berlaku.
  ...

Atur Tag Pendengar

Jalankan perintah kubectl edit albconfig <Albconfig_Name>, lalu tambahkan tag ke pendengar menggunakan parameter tags dalam file AlbConfig. Blok kode berikut menunjukkan contoh konfigurasinya.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default1
spec:
  config:
    name: alb-test1
    addressType: Internet
    zoneMappings:
    - vSwitchId: vsw-rj9qsvwfjcmtbyvt0xxx
    - vSwitchId: vsw-rj99o3wge24iq2ehtxxx
  listeners:
  - port: 80
    protocol: HTTP
    tags:
    - key: "key"
      value: "value1"

Gunakan Kompresi Data

Kompresi data adalah teknik optimisasi yang mengurangi volume data yang ditransfer guna meningkatkan efisiensi dan performa transmisi jaringan. Untuk mengaktifkan atau menonaktifkan kompresi data pada pendengar, jalankan perintah kubectl edit albconfig <Albconfig_Name>, lalu atur parameter gzipEnabled dalam AlbConfig. Brotli dan Gzip merupakan dua algoritma kompresi yang umum digunakan.

  • Brotli mengompres semua tipe konten.

  • Gzip mengompres tipe konten berikut: text/plain, text/css, application/javascript, application/x-javascript, application/rss+xml, application/atom+xml, application/xml, dan application/json.

Contoh YAML berikut menunjukkan cara menonaktifkan kompresi data.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    gzipEnabled: false # true mengompres tipe file tertentu. false menonaktifkan kompresi untuk semua tipe file.
  ...

Dapatkan Alamat IP Klien Asal

Saat instans ALB meneruskan permintaan ke layanan backend, ALB menambahkan alamat IP sumber klien ke header permintaan HTTP.

Penting
  • Parameter ini hanya didukung oleh pendengar HTTP dan HTTPS.

  • XForwardedForEnabled diaktifkan secara default dan tidak dapat dinonaktifkan.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
  ...
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForEnabled: true
  ...

Ambil Protokol Pendengar

Jika fitur ini diaktifkan, ALB menambahkan protokol listener ke header permintaan HTTP saat meneruskan permintaan ke layanan backend. Nilai valid untuk XForwardedForProtoEnabled adalah sebagai berikut:

  • true: Mengambil protokol listener.

  • false: Tidak mengambil protokol listener.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForProtoEnabled: true
  ...

Dapatkan ID Instans SLB Pendengar

Jalankan perintah kubectl edit albconfig <Albconfig_Name>. Dalam AlbConfig, Anda dapat memperoleh ID instans SLB melalui bidang header XForwardedForSLBIdEnabled.

Penting

Parameter ini hanya dapat dikonfigurasi untuk pendengar HTTP dan HTTPS.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForSLBIdEnabled: true # true: Dapatkan ID instans SLB. false: Jangan dapatkan ID instans SLB.
  ...

Dapatkan Port yang Sedang Mendengarkan

Jalankan perintah kubectl edit albconfig <Albconfig_Name>. Anda dapat menggunakan bidang XForwardedForSLBPortEnabled dalam AlbConfig untuk mengambil port pendengar instans tersebut.

Penting

Parameter ini hanya didukung oleh pendengar HTTP dan HTTPS.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForSLBPortEnabled: true # true: Mengambil port pendengaran instans SLB. false: Port tidak diambil.
  ...

Tentukan Alamat IP Proksi Tepercaya

Jalankan perintah kubectl edit albconfig <Albconfig_Name>. Dalam AlbConfig, gunakan item konfigurasi XForwardedForClientSourceIpsEnabled untuk mengizinkan Application Load Balancer (ALB) mengambil alamat IP klien sebenarnya dari bidang header X-Forwarded-For. Gunakan item konfigurasi XForwardedForClientSourceIpsTrusted untuk menentukan sekelompok alamat IP proksi tepercaya. ALB menelusuri daftar alamat IP dalam bidang X-Forwarded-For dari kanan ke kiri dan memilih alamat IP pertama yang tidak termasuk dalam daftar IP tepercaya sebagai alamat IP sumber klien. Alamat IP ini digunakan dalam skenario seperti pembatasan laju berbasis IP sumber.

Penting

Parameter ini hanya dapat dikonfigurasi untuk pendengar HTTP dan HTTPS.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForClientSourceIpsEnabled: true # true mengindikasikan bahwa ALB diizinkan menemukan alamat IP klien sebenarnya dari bidang header X-Forwarded-For. Dalam kasus ini, konfigurasikan XForwardedForClientSourceIpsTrusted dengan format yang benar. false mengindikasikan bahwa ALB tidak diizinkan menemukan alamat IP klien sebenarnya dari bidang header X-Forwarded-For.
      XForwardedForClientSourceIpsTrusted: 192.168.x.x;192.168.x.x/16  # Masukkan alamat IP atau blok CIDR dalam format yang benar, dipisahkan dengan titik koma. Jangan tambahkan spasi antara alamat IP atau blok CIDR. Parameter ini hanya berlaku jika XForwardedForClientSourceIpsEnabled diatur ke true.
  ...

Atur Kontrol Akses

Jalankan perintah kubectl edit albconfig <Albconfig_Name>. Dalam AlbConfig, gunakan parameter aclConfig untuk mengaktifkan kontrol akses pada pendengar ALB. Fitur ini memungkinkan Anda mengontrol permintaan klien secara presisi dan mengelola penerusan permintaan dengan menetapkan aturan allow atau deny arah masuk untuk membatasi alamat IP tertentu. Untuk informasi selengkapnya tentang opsi konfigurasi kontrol akses, lihat Configure ACLs for access control.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
  ...
  listeners:
  - port: 80
    protocol: HTTP
    aclConfig: # Aktifkan kontrol akses untuk pendengar ALB.
      aclEntries:
      - 127.0.0.1/32 # Tentukan blok CIDR untuk entri kontrol akses. Blok CIDR harus lengkap.
      aclType: White # Atur tipe ACL pendengar menjadi Black atau White.
  ...

Hapus Pendengar

Sebuah instans dapat memiliki beberapa pendengar. Untuk menghapus pendengar, jalankan perintah kubectl edit albconfig <Albconfig_Name>, lalu hapus pendengar tersebut dari bidang albconfig.spec.listeners.

Penting

Sebelum menghapus pendengar, Anda harus menghapus semua Ingress yang terkait. Jika tidak, penghapusan akan gagal dan menghasilkan error.

# Konfigurasi sebelum menghapus pendengar.
  listeners:
  - port: 8001
    protocol: HTTP
  - port: 8002  # Hapus pendengar pada port 8002.
    protocol: HTTP

# Konfigurasi setelah menghapus pendengar.
  listeners:
  - port: 8001
    protocol: HTTP