Baca dalam bahasa Inggris

Bagikan melalui


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:

Sebelum Anda mulai

Memasang ekstensi aks-preview Azure CLI

  1. aks-preview Instal ekstensi menggunakan az extension add perintah .

    az extension add --name aks-preview
    
  2. Perbarui ke versi terbaru ekstensi menggunakan az extension update perintah .

    az extension update --name aks-preview
    

Daftarkan KubeProxyConfigurationPreview bendera fitur

  1. Daftarkan KubeProxyConfigurationPreview bendera fitur menggunakan az feature register perintah .

    az feature register --namespace "Microsoft.ContainerService" --name "KubeProxyConfigurationPreview"
    

    Dibutuhkan beberapa menit agar status menampilkan Terdaftar.

  2. Verifikasi status pendaftaran menggunakan az feature show perintah .

    az feature show --namespace "Microsoft.ContainerService" --name "KubeProxyConfigurationPreview"
    
  3. Saat status mencerminkan Terdaftar, refresh pendaftaran penyedia sumber daya Microsoft.ContainerService menggunakan az provider register perintah .

    az provider register --namespace Microsoft.ContainerService
    

kube-proxy opsi konfigurasi

Anda dapat melihat struktur konfigurasi lengkap kube-proxy di Skema Kluster AKS.

  • enabled: Menentukan penyebaran kube-proxy DaemonSet. Default ke true.
  • mode: Anda dapat mengatur ke atau IPTABLES IPVS. Default ke IPTABLES.
  • ipvsConfig: Jika mode adalah IPVS, 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

Gunakan kube-proxy dalam kluster AKS baru atau yang sudah ada

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.

  1. Buat file konfigurasi dengan konfigurasi yang diinginkan kube-proxy . Misalnya, konfigurasi berikut memungkinkan IPVS dengan penjadwal LeastConnection dan mengatur batas waktu TCP menjadi 900 detik.

    {
      "enabled": true,
      "mode": "IPVS",
      "ipvsConfig": {
        "scheduler": "LeastConnection",
        "TCPTimeoutSeconds": 900,
        "TCPFINTimeoutSeconds": 120,
        "UDPTimeoutSeconds": 300
      }
    }
    
  2. Buat kluster baru atau perbarui kluster yang ada dengan file konfigurasi menggunakan az aks create perintah atau az 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
    

Langkah berikutnya

Artikel ini membahas cara mengonfigurasi kube-proxy di Azure Kubernetes Service (AKS). Untuk mempelajari selengkapnya tentang penyeimbangan beban di AKS, lihat artikel berikut ini: