Menyiapkan konfigurasi lanjutan

Dokumen ini berisi catatan yang mungkin berguna saat mengonfigurasi Traffic Director.

Mengonfigurasi satu VM Compute Engine untuk Traffic Director

Gunakan prosedur ini sebagai contoh penerapan deployment proxy file bantuan dan intersepsi traffic untuk memberi VM akses ke layanan Traffic Director.

Untuk menggunakan prosedur ini, Anda harus menginstal Docker. Ikuti petunjuk Docker untuk menginstal Docker Engine.

Jika Anda mengikuti proses ini untuk mengonfigurasi Traffic Director pada satu VM, beberapa tugas penyiapan mengharuskan Anda memiliki akses ke host Linux. Host dapat berupa mesin lokal atau VM yang berjalan di jaringan Virtual Private Cloud Anda.

Pertama, download dan siapkan file konfigurasi dan contoh skrip.

  1. Login ke host Linux yang Anda gunakan selama proses penyiapan.

  2. Download arsip file yang diperlukan ke host Linux dan hapus arsip tersebut:

    wget https://storage.googleapis.com/traffic-director/traffic-director-xdsv3.tar.gz
    tar -xzvf traffic-director-xdsv3.tar.gz; cd traffic-director-xdsv3
    

    Arsip berisi file berikut:

    • sidecar.env – File konfigurasi dengan variabel lingkungan.
    • iptables.sh – Skrip untuk menyiapkan aturan netfilter.
    • bootstrap_template.yaml – File template Bootstrap untuk Envoy.
    • run.sh - Skrip tingkat teratas yang menggunakan file konfigurasi sidecar.env guna menyiapkan iptables untuk intersepsi dan menjalankan proxy sidecar Envoy.
  3. Pada setiap host yang menjalankan proxy file bantuan, buat pengguna sistem untuk menjalankan proses proxy Envoy. Ini adalah pengguna proxy Envoy. Login dinonaktifkan untuk pengguna proxy Envoy.

    sudo adduser --system --disabled-login envoy
    
  4. Edit file sidecar.env untuk mengubah konfigurasi. Baca komentar inline dalam file konfigurasi untuk mengetahui deskripsi mendetail dari setiap variabel.

    1. Dalam file sidecar.env, tetapkan variabel ENVOY_USER ke nama pengguna yang Anda pilih untuk menjadi pengguna proxy Envoy.

Selanjutnya, untuk setiap host VM yang menjalankan aplikasi menggunakan Traffic Director, lakukan langkah-langkah berikut:

  1. Salin seluruh direktori traffic-director-xdsv3 dengan file sidecar.env yang telah diubah ke setiap host VM yang menjalankan aplikasi yang Anda harapkan akan menggunakan Traffic Director.
  2. Tambahkan skrip run.sh ke skrip startup sistem Anda, yang memastikan bahwa skrip dijalankan setelah setiap mulai ulang VM.
  3. Di setiap host VM, jalankan skrip run.sh:

    cd traffic-director-xdsv3
    sudo ./run.sh start
    
  4. Verifikasi bahwa proxy Envoy dimulai dengan benar.

    sudo ./run.sh status
    

    Anda akan melihat output berikut:

    OK: Envoy seems to be running.
    OK: Traffic interception seems to be enabled.
    

    Anda dapat memverifikasi arah intersepsi lalu lintas menggunakan hal berikut:

    sudo iptables -S -t nat | grep ISTIO_REDIRECT
    

    Berikut adalah output yang diinginkan:

    -N ISTIO_REDIRECT
    -A ISTIO_OUTPUT -j ISTIO_REDIRECT
    -A ISTIO_REDIRECT -p tcp -j REDIRECT --to-ports 15001`
    

Peta aturan perutean

Ada dua cara untuk mengonfigurasi perutean dalam peta aturan perutean.

Anda dapat mengaktifkan pemilihan rute berdasarkan VIP tujuan dan port layanan yang sebenarnya. Jika Anda mengonfigurasi VIP layanan sebagai parameter IPAddress dari aturan penerusan, hanya traffic yang ditujukan ke alamat ini, dan port terkait, yang akan dicocokkan dan dirutekan, berdasarkan parameter host dan jalur yang ditentukan pada peta URL.

Atau, Anda dapat menetapkan alamat aturan penerusan ke 0.0.0.0. Tindakan ini akan mengonfigurasi proxy agar hanya mencocokkan traffic berdasarkan port tujuan, terlepas dari alamat IP tujuan permintaan. Traffic kemudian dirutekan berdasarkan parameter host dan jalur yang ditentukan di peta URL.

Berdasarkan dua pendekatan ini, nama host, seperti yang dikonfigurasi dalam aturan host, yang terkait dengan pasangan port dan VIP tujuan, atau dengan port tujuan (jika VIP adalah 0.0.0.0), harus unik dalam konfigurasi mesh layanan Anda. Artinya, Anda tidak dapat memiliki dua layanan yang berbeda, dengan kumpulan backend berbeda, yang menggunakan nama host yang sama.

Terlepas dari metode yang dipilih, traffic ke VIP yang diselesaikan oleh nama host/FQDN layanan Anda, dan port yang diproses oleh layanan Anda, harus dicegat dan dialihkan ke proxy file bantuan. Lihat Mengonfigurasi satu VM Compute Engine untuk Traffic Director untuk mengetahui detail konfigurasi host selengkapnya.

Setiap aturan penerusan dalam jaringan VPC harus memiliki kombinasi unik alamat IP dan port per jaringan VPC, termasuk alamat 0.0.0.0. Jika Anda membuat lebih dari satu aturan penerusan dengan alamat IP dan port yang sama di jaringan VPC tertentu, hanya aturan penerusan pertama yang valid. Yang lain saja diabaikan.

Untuk menghindari kehilangan traffic, ikuti bagian Konfigurasi intersepsi traffic lanjutan di bawah.

Konfigurasi intersepsi traffic lanjutan

Jika VM menjalankan aplikasi yang memerlukan akses ke layanan yang dikonfigurasi oleh Traffic Director, Anda harus menginstal proxy file bantuan dan mengonfigurasi intersepsi traffic pada VM agar proxy sidecar dapat mengelola perutean traffic ke backend layanan tersebut.

Jika intersepsi semua traffic VM keluar tidak dapat diterima untuk deployment, Anda dapat mengalihkan traffic tertentu ke proxy file bantuan, sementara traffic lainnya akan mengikuti rute reguler yang ditentukan oleh konfigurasi jaringan host Anda.

Untuk melakukannya, ubah penyiapan host VM Compute Engine dalam prosedur penyiapan Traffic Director dengan VM dan deployment Envoy manual sebagai berikut:

  1. Tentukan rentang alamat IP yang akan diselesaikan oleh layanan yang dikontrol Traffic Director. Traffic yang ditujukan ke alamat IP ini dicegat dan dialihkan ke proxy file bantuan. Rentang ini khusus untuk deployment Anda.

  2. Di file sidecar.env, tetapkan nilai SERVICE_CIDR ke rentang ini. Traffic ke alamat IP ini dialihkan oleh netfilter ke proxy file bantuan dan melakukan load balancing sesuai dengan konfigurasi yang disediakan oleh Traffic Director.

  3. Proxy file bantuan tidak benar-benar diperlukan untuk berjalan sebagai pengguna khusus yang dikecualikan dari intersepsi traffic. Namun, tindakan ini tetap disarankan.

  4. Setelah Anda menjalankan skrip run.sh, seperti yang diarahkan dalam prosedur utama, iptables hanya dikonfigurasi untuk intersepsi dan pengalihan rentang khusus ini.

  5. Jalankan perintah berikut untuk memastikan netfilter dikonfigurasi dengan benar. Untuk ${SERVICE_CIDR}, ganti nilai yang Anda konfigurasi sebagai rentang alamat IP yang disadap.

    sudo iptables -L -t nat | grep -E "(ISTIO_REDIRECT).+${SERVICE_CIDR})"