Mengonfigurasi kube-proxy
di Azure Kubernetes Service (AKS) (Pratinjau)
kube-proxy
adalah komponen Kubernetes yang menangani lalu lintas perutean untuk layanan dalam kluster. Ada dua backend yang tersedia untuk penyeimbangan beban Lapisan 3/4 di upstream kube-proxy
: iptables dan IPVS.
- iptables adalah backend default yang digunakan di sebagian besar kluster Kubernetes. Ini sederhana dan didukung dengan baik, tetapi tidak seefisien atau cerdas seperti IPVS.
- IPVS menggunakan Linux Virtual Server, load balancer lapisan 3/4 yang dibangun ke dalam kernel Linux. IPVS memberikan sejumlah keunggulan dibandingkan konfigurasi iptables default, termasuk kesadaran status, pelacakan koneksi, dan penyeimbangan beban yang lebih cerdas. IPVS tidak mendukung Azure Network Policy.
Untuk informasi selengkapnya, lihat dokumentasi Kubernetes pada kube-proxy.
Catatan
Jika mau, Anda dapat menonaktifkan DaemonSet yang dikelola kube-proxy
AKS untuk mendukung CNI bawaan Anda sendiri.
Penting
Fitur pratinjau AKS tersedia berdasarkan layanan mandiri. Pratinjau disediakan "apa adanya" dan "sebagaimana tersedia," dan mereka dikecualikan dari perjanjian tingkat layanan dan garansi terbatas. Pratinjau AKS sebagian dicakup oleh dukungan pelanggan berdasarkan upaya terbaik. Dengan demikian, fitur-fitur ini tidak dimaksudkan untuk penggunaan produksi. Untuk informasi lebih lanjut, lihat artikel dukungan berikut ini:
- Jika menggunakan Azure CLI, Anda memerlukan
aks-preview
ekstensi . Lihat Menginstalaks-preview
ekstensi Azure CLI. - Jika menggunakan ARM atau REST API, versi AKS API harus 2022-08-02-preview atau yang lebih baru.
- Anda perlu mendaftarkan
KubeProxyConfigurationPreview
bendera fitur. Lihat MendaftarkanKubeProxyConfigurationPreview
bendera fitur.
aks-preview
Instal ekstensi menggunakanaz extension add
perintah .az extension add --name aks-preview
Perbarui ke versi terbaru ekstensi menggunakan
az extension update
perintah .az extension update --name aks-preview
Daftarkan
KubeProxyConfigurationPreview
bendera fitur menggunakanaz feature register
perintah .az feature register --namespace "Microsoft.ContainerService" --name "KubeProxyConfigurationPreview"
Dibutuhkan beberapa menit agar status menampilkan Terdaftar.
Verifikasi status pendaftaran menggunakan
az feature show
perintah .az feature show --namespace "Microsoft.ContainerService" --name "KubeProxyConfigurationPreview"
Saat status mencerminkan Terdaftar, refresh pendaftaran penyedia sumber daya Microsoft.ContainerService menggunakan
az provider register
perintah .az provider register --namespace Microsoft.ContainerService
Anda dapat melihat struktur konfigurasi lengkap kube-proxy
di Skema Kluster AKS.
enabled
: Menentukan penyebarankube-proxy
DaemonSet. Default ketrue
.mode
: Anda dapat mengatur ke atauIPTABLES
IPVS
. Default keIPTABLES
.ipvsConfig
: Jikamode
adalahIPVS
, objek ini berisi properti konfigurasi khusus IPVS.scheduler
: Menentukan penjadwal koneksi mana yang akan digunakan. Nilai yang didukung mencakup:LeastConnection
: Mengirim koneksi ke pod backend dengan koneksi terkecil.RoundRobin
: Mendistribusikan koneksi secara merata antara pod backend.
tcpFinTimeoutSeconds
: Mengatur nilai panjang batas waktu setelah sesi TCP menerima FIN.tcpTimeoutSeconds
: Mengatur nilai panjang batas waktu untuk sesi TCP menganggur.udpTimeoutSeconds
: Mengatur nilai panjang batas waktu untuk sesi UDP menganggur.
Catatan
Penyeimbangan beban IPVS beroperasi di setiap simpul secara independen dan hanya mengetahui koneksi yang mengalir melalui simpul lokal. Ini berarti bahwa meskipun LeastConnection
menghasilkan beban yang lebih merata di bawah jumlah koneksi yang lebih tinggi, ketika jumlah koneksi yang rendah (# menghubungkan < 2 * jumlah node) terjadi, lalu lintas mungkin relatif tidak seimbang
kube-proxy
konfigurasi adalah pengaturan di seluruh kluster. Anda tidak perlu memperbarui layanan Anda.
Peringatan
Mengubah konfigurasi kube-proxy dapat menyebabkan sedikit gangguan dalam arus lalu lintas layanan kluster.
Buat file konfigurasi dengan konfigurasi yang diinginkan
kube-proxy
. Misalnya, konfigurasi berikut memungkinkan IPVS dengan penjadwalLeastConnection
dan mengatur batas waktu TCP menjadi 900 detik.{ "enabled": true, "mode": "IPVS", "ipvsConfig": { "scheduler": "LeastConnection", "TCPTimeoutSeconds": 900, "TCPFINTimeoutSeconds": 120, "UDPTimeoutSeconds": 300 } }
Buat kluster baru atau perbarui kluster yang ada dengan file konfigurasi menggunakan
az aks create
perintah atauaz aks update
dengan parameter yang--kube-proxy-config
diatur ke file konfigurasi.# Create a new cluster az aks create \ --resource-group <resourceGroup> \ --name <clusterName> \ --kube-proxy-config kube-proxy.json \ --generate-ssh-keys # Update an existing cluster az aks update \ --resource-group <resourceGroup> \ --name <clusterName> \ --kube-proxy-config kube-proxy.json
Artikel ini membahas cara mengonfigurasi kube-proxy
di Azure Kubernetes Service (AKS). Untuk mempelajari selengkapnya tentang penyeimbangan beban di AKS, lihat artikel berikut ini:
Umpan balik Azure Kubernetes Service
Azure Kubernetes Service adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: