Menyiapkan konfigurasi lanjutan
Dokumen ini berisi catatan yang mungkin berguna saat mengonfigurasi dan Cloud Service Mesh.
Mengonfigurasi satu VM Compute Engine untuk Cloud Service Mesh
Gunakan prosedur ini sebagai contoh cara deployment dan traffic proxy file bantuan intersepsi dapat diterapkan untuk menyediakan VM dengan akses ke layanan Mesh Layanan Cloud.
Untuk menggunakan prosedur ini, Anda harus menginstal Docker. Ikuti Petunjuk Docker untuk menginstal Docker Engine.
Jika Anda mengikuti proses ini untuk mengonfigurasi Cloud Service Mesh pada satu VM saja, beberapa tugas pengaturan mengharuskan Anda untuk memiliki akses ke {i>host<i} Linux. Tujuan {i>host <i}dapat berupa komputer lokal atau VM yang berjalan di jaringan Virtual Private Cloud Anda.
Pertama, download dan siapkan file konfigurasi dan contoh skrip.
Masuk ke host Linux yang Anda gunakan selama proses penyiapan.
Download arsip file yang diperlukan ke host Linux dan untar arsip:
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 atas yang menggunakan konfigurasi
sidecar.env
file guna menyiapkaniptables
untuk intersepsi dan menjalankan file bantuan Envoy {i>proxy<i}.
Pada setiap host yang menjalankan proxy file bantuan, buat pengguna sistem untuk menjalankan Proses proxy Envoy. Ini adalah pengguna proxy Envoy. Proses masuk dinonaktifkan untuk pengguna proxy Envoy.
sudo adduser --system --disabled-login envoy
Edit file
sidecar.env
untuk mengubah konfigurasi. Baca inline komentar di file konfigurasi untuk mendapatkan deskripsi terperinci dari masing-masing variabel.- Dalam file
sidecar.env
, tetapkan variabelENVOY_USER
ke nama pengguna yang Anda pilih untuk menjadi pengguna {i>proxy<i} Envoy.
- Dalam file
Selanjutnya, untuk setiap host VM yang menjalankan aplikasi menggunakan Cloud Service Mesh, langkah-langkah berikut:
- Salin seluruh direktori
traffic-director-xdsv3
dengan file yang dimodifikasisidecar.env
untuk setiap host VM yang menjalankan aplikasi yang Anda harapkan untuk menggunakan Cloud Service Mesh. - Tambahkan skrip
run.sh
ke skrip startup sistem Anda, yang memastikan bahwa skrip dijalankan setelah setiap kali VM dimulai ulang. Pada setiap host VM, jalankan skrip
run.sh
:cd traffic-director-xdsv3 sudo ./run.sh start
Pastikan 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 traffic 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 di peta aturan perutean.
Anda dapat mengaktifkan pemilihan rute berdasarkan VIP tujuan yang sebenarnya dan port
layanan. Jika Anda mengonfigurasi VIP layanan sebagai parameter IPAddress
dari
aturan penerusan, hanya traffic yang ditujukan ke alamat ini, dan
porta, dicocokkan, dan dirutekan, berdasarkan parameter {i>host<i} dan jalur
yang ditentukan dalam peta URL.
Atau, Anda dapat menetapkan alamat aturan penerusan ke 0.0.0.0
.
Tindakan ini akan mengonfigurasi proxy agar hanya mencocokkan traffic berdasarkan tujuan
porta, terlepas dari alamat IP tujuan permintaan. Lalu lintas kemudian
dirutekan berdasarkan parameter host dan jalur yang ditentukan dalam peta URL.
Berdasarkan kedua pendekatan ini, nama {i>host<i},
seperti yang dikonfigurasi dalam aturan {i>host<i},
terkait dengan pasangan VIP dan port 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, yang keduanya menggunakan nama host yang sama.
Terlepas dari metode yang dipilih, traffic ke VIP yang diberikan layanan Anda nama host/FQDN di-resolve, dan porta tempat layanan Anda diproses, harus dicegat dan dialihkan ke proxy file bantuan. Rujuk ke Mengonfigurasi satu VM Compute Engine untuk Cloud Service Mesh untuk mengetahui detail konfigurasi host lengkap.
Setiap aturan penerusan di jaringan VPC harus memiliki kombinasi IP yang unik
alamat dan port per jaringan VPC, termasuk alamat 0.0.0.0
. Jika Anda
membuat lebih dari satu aturan penerusan
dengan alamat IP dan porta yang sama di
di jaringan VPC tertentu, hanya aturan penerusan pertama yang valid. Lainnya adalah
diabaikan.
Agar tidak kehilangan traffic, ikuti Intersepsi traffic lanjutan konfigurasi di bawah.
Konfigurasi intersepsi traffic lanjutan
Jika VM Anda menjalankan aplikasi yang memerlukan akses ke layanan yang dikonfigurasi oleh Cloud Service Mesh, Anda harus menginstal proxy file bantuan dan mengonfigurasi traffic intersepsi pada VM untuk memungkinkan proxy file bantuan mengelola perutean traffic backend layanan tersebut.
Jika intersepsi semua traffic VM keluar tidak dapat diterima untuk deployment, Anda dapat mengalihkan traffic tertentu ke proxy file bantuan, sedangkan traffic lainnya akan mengikuti rute reguler yang ditentukan oleh host Anda konfigurasi jaringan.
Untuk mencapainya, ubah penyiapan host VM Compute Engine di Penyiapan Cloud Service Mesh dengan VM dan deployment Envoy manual prosedur sebagai berikut:
Menentukan rentang alamat IP yang dikontrol Cloud Service Mesh yang harus diselesaikan layanannya. Lalu lintas yang ditujukan ke alamat IP ini adalah dicegat dan dialihkan ke proxy file bantuan. Rentang ini spesifik untuk deployment Anda.
Dalam file
sidecar.env
, tetapkan nilaiSERVICE_CIDR
ke rentang ini. Traffic ke alamat IP ini dialihkan oleh netfilter ke proxy file bantuan dan di-load balanced sesuai dengan konfigurasi yang diberikan oleh dan Cloud Service Mesh.Proxy file bantuan tidak diwajibkan secara ketat untuk dijalankan sebagai pengguna khusus yang dikecualikan dari intersepsi lalu lintas. Namun, tindakan ini tetap direkomendasikan.
Setelah Anda menjalankan skrip
run.sh
, seperti yang diarahkan dalam prosedur utama,iptables
dikonfigurasikan untuk intersepsi dan pengalihan rentang, saja.Jalankan perintah berikut untuk memastikan netfilter sudah dikonfigurasi dengan benar. Untuk ${SERVICE_CIDR}, ganti nilai yang Anda konfigurasi sebagai rentang alamat IP yang dicegat.
sudo iptables -L -t nat | grep -E "(ISTIO_REDIRECT).+${SERVICE_CIDR})"