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.
Login ke host Linux yang Anda gunakan selama proses penyiapan.
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 menyiapkaniptables
untuk intersepsi dan menjalankan proxy sidecar Envoy.
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
Edit file
sidecar.env
untuk mengubah konfigurasi. Baca komentar inline dalam file konfigurasi untuk mengetahui deskripsi mendetail dari setiap variabel.- Dalam file
sidecar.env
, tetapkan variabelENVOY_USER
ke nama pengguna yang Anda pilih untuk menjadi pengguna proxy Envoy.
- Dalam file
Selanjutnya, untuk setiap host VM yang menjalankan aplikasi menggunakan Traffic Director, lakukan langkah-langkah berikut:
- Salin seluruh direktori
traffic-director-xdsv3
dengan filesidecar.env
yang telah diubah ke setiap host VM yang menjalankan aplikasi yang Anda harapkan akan menggunakan Traffic Director. - Tambahkan skrip
run.sh
ke skrip startup sistem Anda, yang memastikan bahwa skrip dijalankan setelah setiap mulai ulang VM. Di setiap host VM, jalankan skrip
run.sh
:cd traffic-director-xdsv3 sudo ./run.sh start
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:
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.
Di file
sidecar.env
, tetapkan nilaiSERVICE_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.Proxy file bantuan tidak benar-benar diperlukan untuk berjalan sebagai pengguna khusus yang dikecualikan dari intersepsi traffic. Namun, tindakan ini tetap disarankan.
Setelah Anda menjalankan skrip
run.sh
, seperti yang diarahkan dalam prosedur utama,iptables
hanya dikonfigurasi untuk intersepsi dan pengalihan rentang khusus ini.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})"