全部产品
Search
文档中心

Container Compute Service:Gunakan AlbConfigs untuk mengonfigurasi pendengar ALB

更新时间:Jul 06, 2025

Anda dapat menyetel parameter Listeners dari sebuah AlbConfig untuk mengonfigurasi pendengar pada instance Application Load Balancer (ALB). Topik ini menjelaskan parameter Listeners dan cara menggunakan AlbConfig untuk membuat, memodifikasi, serta memperbarui pendengar.

Prasyarat

Deskripsi parameter Listeners

Istilah

  • File konfigurasi objek: File yang mendefinisikan konfigurasi objek Kubernetes.

  • File konfigurasi objek live: File konfigurasi objek yang telah diterapkan di kluster Kubernetes.

  • last-applied-configuration: Anotasi objek Kubernetes. Anotasi mencatat konten konfigurasi terbaru dari objek tersebut. Anotasi tidak diperbarui secara real-time ketika konfigurasi objek diperbarui.

Metode pembaruan untuk parameter Listeners

Parameter Listeners bertipe array. Dalam kebanyakan kasus, Anda dapat memperbarui parameter Listeners dengan mengganti bidang dalam array. Saat memperbarui parameter Listeners, bidang tersebut diganti dengan bidang baru yang Anda tentukan. Tabel berikut menjelaskan aturan tersebut.

No.

Kondisi

Hasil

Pendengar ada di file konfigurasi objek

Pendengar ada di file konfigurasi objek live

Pendengar ada di anotasi last-applied-configuration

1

Ya

Ya

- (Tidak relevan)

Pendengar dipertahankan di file konfigurasi objek live.

2

Ya

Tidak

- (Tidak relevan)

Pendengar ditambahkan ke file konfigurasi objek live.

3

Tidak

- (Tidak relevan)

Ya

Pendengar dihapus dari file konfigurasi objek live. Namun, bidang pendengar mungkin diatur ulang ke pengaturan default.

4

Tidak

Ya

Tidak

Pendengar dihapus dari file konfigurasi objek live.

Contoh

Contoh berikut menunjukkan isi file konfigurasi objek, file konfigurasi objek live, dan anotasi last-applied-configuration:

  • Isi file konfigurasi objek.

      listeners:
      - port: 8001
        protocol: HTTP
      - port: 8003
        protocol: HTTP
      - port: 8005 # Tambahkan port 8005.
        protocol: HTTP
  • Isi file konfigurasi objek live.

      listeners:
      - port: 8001
        protocol: HTTP
      - port: 8002  # Hapus port 8002.
        protocol: HTTP
      - port: 8003
        protocol: HTTP
      - port: 8004  # Hapus port 8004.
        protocol: HTTP
  • Isi anotasi last-applied-configuration.

      listeners:
      - port: 8001 
        protocol: HTTP
      - port: 8002  # Hapus port 8002.
        protocol: HTTP
      - port: 8003
        protocol: HTTP

Blok kode berikut menunjukkan konfigurasi parameter Listeners setelah diperbarui:

  listeners:
  - port: 8001
    protocol: HTTP
  - port: 8003
    protocol: HTTP
  - port: 8005
    protocol: HTTP

Tabel berikut menjelaskan parameter-parameter tersebut.

Port

Aturan

Hasil

8001

Port 8001 dan port 8003 sesuai dengan Aturan 1, yang berarti kondisi berikut terpenuhi:

  • Pendengar ada di file konfigurasi objek.

  • Pendengar ada di file konfigurasi objek live.

Dipertahankan

8003

8005

Port 8005 sesuai dengan Aturan 2, yang berarti kondisi berikut terpenuhi:

  • Pendengar ada di file konfigurasi objek.

  • Pendengar tidak ada di file konfigurasi objek live.

Ditambahkan

8002

Port 8002 sesuai dengan Aturan 3, yang berarti kondisi berikut terpenuhi:

  • Pendengar tidak ada di file konfigurasi objek.

  • Pendengar ada di anotasi last-applied-configuration.

Dihapus

8004

Port 8004 sesuai dengan Aturan 4, yang berarti kondisi berikut terpenuhi:

  • Pendengar tidak ada di file konfigurasi objek.

  • Pendengar ada di file konfigurasi objek live.

  • Pendengar tidak ada di anotasi last-applied-configuration.

Dihapus

Buat pendengar

Instance ALB menggunakan pendengar untuk menerima dan meneruskan permintaan eksternal berdasarkan informasi lapisan aplikasi dari permintaan tersebut.

Jalankan perintah kubectl edit albconfig <Albconfig_Name> untuk memodifikasi AlbConfig. Anda dapat mengonfigurasi parameter port dan protocol untuk membuat pendengar. Parameter port dan protocol adalah satu-satunya pengenal pendengar. Jika Anda memodifikasi parameter port atau protocol, sistem akan menghapus pendengar asli dan membuat pendengar berdasarkan konfigurasi baru.

Catatan

HTTP kompatibel dengan WebSocket. Tidak diperlukan konfigurasi tambahan.

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

Tentukan sertifikat

Untuk mengaktifkan enkripsi dan otentikasi pada pendengar HTTPS saat membuat instance ALB, jalankan perintah kubectl edit albconfig <Albconfig_Name> untuk memodifikasi AlbConfig yang digunakan untuk mengonfigurasi instance ALB. Kemudian, tentukan ID sertifikat di parameter certificates dari AlbConfig.

Jika Anda tidak menentukan sertifikat di parameter tersebut, tidak ada pendengar HTTPS yang dibuat saat sistem membuat instance ALB. Sistem menunggu hingga Ingress dikaitkan dengan pendengar dan Ingress secara otomatis menemukan sertifikat berdasarkan nama domain yang ditentukan dalam konfigurasi Ingress. Ini berarti pembuatan pendengar tertunda karena penemuan otomatis sertifikat berdasarkan nama domain.

Untuk informasi lebih lanjut tentang cara mengonfigurasi sertifikat, lihat Konfigurasikan sertifikat HTTPS untuk komunikasi terenkripsi.

Penting

ALB menggunakan sertifikat pertama yang Anda tentukan sebagai sertifikat default. ALB menggunakan sertifikat default untuk mengenkripsi permintaan hingga sertifikat kedaluwarsa atau tidak lagi memenuhi persyaratan. Dalam hal ini, ALB menggunakan sertifikat lain untuk mengenkripsi permintaan.

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

Konfigurasikan kebijakan keamanan TLS kustom

Untuk mengonfigurasi kebijakan keamanan TLS kustom, jalankan perintah kubectl edit albconfig <Albconfig_Name> untuk memodifikasi AlbConfig. Kemudian, konfigurasikan parameter securityPolicyId untuk menentukan ID kebijakan keamanan. Anda dapat menentukan kebijakan keamanan TLS saat mengonfigurasi pendengar HTTPS di AlbConfig. Kebijakan keamanan TLS kustom dan default didukung. Untuk informasi lebih lanjut, lihat Kebijakan Keamanan TLS.

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

Tetapkan periode batas waktu koneksi untuk pendengar

Untuk menetapkan periode batas waktu koneksi untuk pendengar, jalankan perintah kubectl edit albconfig <Albconfig_Name> untuk memodifikasi AlbConfig. Kemudian, konfigurasikan parameter requestTimeout. Ini mencegah klien menunggu respons terlalu lama.

Jika server backend tidak merespons dalam periode batas waktu setelah klien mengirimkan permintaan ke server, ALB mengembalikan kode kesalahan HTTP 504 ke klien.

  • Nilai valid untuk requestTimeout: 1 hingga 180. Unit: detik.

  • Nilai default untuk requestTimeout: 60.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    requestTimeout: 60 # Periode batas waktu koneksi untuk pendengar. Nilai valid: 1 hingga 180. Jika Anda meninggalkan parameter kosong, nilai default digunakan.
  ...

Konfigurasikan kompresi data

Kompresi data dapat mengurangi ukuran file untuk meningkatkan efisiensi transmisi dan kinerja jaringan. Untuk mengonfigurasi kompresi data, jalankan perintah kubectl edit albconfig <Albconfig_Name> untuk memodifikasi AlbConfig. Kemudian, konfigurasikan parameter gzipEnabled untuk mengaktifkan kompresi data untuk pendengar. Brotli dan Gzip adalah dua algoritma kompresi yang umum digunakan.

  • Brotli mendukung semua jenis file.

  • Gzip mendukung jenis file berikut: text/plain, text/css, application/javascript, application/x-javascript, application/rss+xml, application/atom+xml, application/xml, dan application/json.

Blok kode berikut menyediakan contoh konfigurasi AlbConfig yang menonaktifkan kompresi data:

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

Pertahankan alamat IP klien

Untuk mempertahankan alamat IP klien, jalankan perintah kubectl edit albconfig <Albconfig_Name> untuk memodifikasi AlbConfig. Kemudian, konfigurasikan parameter X-Forwarded-For untuk mengaktifkan pelestarian alamat IP klien.

Penting

Hanya pendengar HTTP dan HTTPS yang mendukung parameter ini.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
  ...
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForEnabled: true # Nilai true mengaktifkan pelestarian alamat IP klien. Nilai false menonaktifkan pelestarian alamat IP klien.
  ...

Ambil protokol pendengaran yang digunakan oleh instance ALB

Untuk mengambil protokol pendengaran yang digunakan oleh instance ALB, jalankan perintah kubectl edit albconfig <Albconfig_Name> untuk memodifikasi AlbConfig yang digunakan untuk mengonfigurasi instance ALB. Kemudian, konfigurasikan parameter X-Forwarded-For untuk mengambil protokol pendengaran yang digunakan oleh instance ALB.

Penting

Hanya pendengar HTTP dan HTTPS yang mendukung parameter ini.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForProtoEnabled: true # Nilai true mengambil protokol pendengaran yang digunakan oleh instance ALB. Nilai true tidak mengambil protokol pendengaran yang digunakan oleh instance ALB.
  ...

Ambil ID instance ALB

Untuk mengambil ID instance ALB, jalankan perintah kubectl edit albconfig <Albconfig_Name> untuk memodifikasi AlbConfig yang digunakan untuk mengonfigurasi instance ALB. Kemudian, konfigurasikan parameter XForwardedForSLBIdEnabled untuk mengambil ID instance ALB.

Penting

Hanya pendengar HTTP dan HTTPS yang mendukung parameter ini.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForSLBIdEnabled: true # Nilai true mengambil ID instance ALB. Nilai true tidak mengambil ID instance ALB.
  ...

Ambil port pendengaran instance ALB

Untuk mengambil port pendengaran instance ALB, jalankan perintah kubectl edit albconfig <Albconfig_Name> untuk memodifikasi AlbConfig yang digunakan untuk mengonfigurasi instance ALB. Kemudian, konfigurasikan parameter XForwardedForSLBPortEnabled untuk mengambil port pendengaran instance ALB.

Penting

Hanya pendengar HTTP dan HTTPS yang mendukung parameter ini.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForSLBPortEnabled: true # Nilai true mengambil port pendengaran instance ALB. Nilai false tidak mengambil port pendengaran instance ALB.
  ...

Tentukan alamat IP proksi tepercaya

Untuk menentukan alamat IP proksi tepercaya untuk instance ALB, jalankan perintah kubectl edit albconfig <Albconfig_Name> untuk memodifikasi AlbConfig yang digunakan untuk mengonfigurasi instance ALB. Konfigurasikan parameter XForwardedForClientSourceIpsEnabled untuk mengizinkan instance ALB mengambil alamat IP klien dari header X-Forwarded-For. Kemudian, konfigurasikan parameter XForwardedForClientSourceIpsTrusted untuk menentukan daftar alamat IP proksi tepercaya. Dengan cara ini, instance ALB melintasi alamat IP di header X-Forwarded-For dari alamat IP paling kanan ke alamat IP paling kiri. Alamat IP pertama yang tidak ada dalam daftar alamat IP tepercaya dianggap sebagai alamat IP klien. Permintaan dari alamat IP klien dibatasi.

Penting

Hanya pendengar HTTP dan HTTPS yang mendukung parameter ini.

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: default
spec:
  config:
    ...
  listeners:
  - port: 80
    protocol: HTTP
    xForwardedForConfig:
      XForwardedForClientSourceIpsEnabled: true # Nilai true mengizinkan instance ALB mengambil alamat IP klien dari header X-Forwarded-For. Jika Anda menetapkan nilai ke true, Anda harus mengonfigurasi parameter XForwardedForClientSourceIpsTrusted dalam format yang valid. Nilai false melarang instance ALB mengambil alamat IP klien dari header X-Forwarded-For.
      XForwardedForClientSourceIpsTrusted: 192.168.x.x;192.168.x.x/16  # Masukkan alamat IP atau blok CIDR yang valid. Parameter ini hanya berlaku jika XForwardedForClientSourceIpsEnabled disetel ke true.
  ...

Konfigurasikan ACL jaringan

Untuk mengonfigurasi daftar kontrol akses jaringan (ACL) untuk pendengar instance ALB, jalankan perintah kubectl edit albconfig <Albconfig_Name> untuk memodifikasi AlbConfig yang digunakan untuk mengonfigurasi instance ALB. Kemudian, konfigurasikan parameter aclConfig untuk mengaktifkan ACL jaringan. Ini memungkinkan Anda menerapkan kontrol akses granular pada permintaan klien. Anda dapat mengonfigurasi ACL jaringan untuk mengizinkan atau menolak akses dari alamat IP atau blok CIDR tertentu. Untuk informasi lebih lanjut, lihat Konfigurasikan ACL untuk mengaktifkan kontrol akses.

apiVersion: alibabacloud.com/v1kind: AlbConfig
metadata:
  name: default
spec:
  config:
  ...
  listeners:
  - port: 80
    protocol: HTTPS
    aclConfig: # Aktifkan ACL jaringan untuk pendengar.
      aclEntries:
      - 127.0.0.1/32 # Blok CIDR yang ingin Anda tambahkan ke aturan ACL untuk kontrol akses.
      aclType: White # Jenis ACL jaringan. Nilai valid: Black (daftar hitam) dan White (daftar putih).
  ...

Hapus pendengar

Sebuah instance ALB mungkin memiliki beberapa pendengar. Untuk menghapus pendengar dari instance ALB, jalankan perintah kubectl edit albconfig <Albconfig_Name> untuk memodifikasi AlbConfig yang digunakan untuk mengonfigurasi instance ALB. Kemudian, hapus pendengar dari parameter albconfig.spec.listeners.

Penting

Sebelum menghapus pendengar, Anda harus melepas semua Ingress dari pendengar tersebut. Jika tidak, Anda gagal menghapus pendengar dan sistem akan menampilkan kesalahan.

# Sebelum penghapusan.
  listeners:
  - port: 8001
    protocol: HTTP
  - port: 8002  # Hapus port pendengaran 8002.
    protocol: HTTP

# Setelah penghapusan.
  listeners:
  - port: 8001
    protocol: HTTP