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.

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

  2. 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 menyiapkan iptables untuk intersepsi dan menjalankan file bantuan Envoy {i>proxy<i}.
  3. 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
    
  4. Edit file sidecar.env untuk mengubah konfigurasi. Baca inline komentar di file konfigurasi untuk mendapatkan deskripsi terperinci dari masing-masing variabel.

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

Selanjutnya, untuk setiap host VM yang menjalankan aplikasi menggunakan Cloud Service Mesh, langkah-langkah berikut:

  1. Salin seluruh direktori traffic-director-xdsv3 dengan file yang dimodifikasi sidecar.env untuk setiap host VM yang menjalankan aplikasi yang Anda harapkan untuk menggunakan Cloud Service Mesh.
  2. Tambahkan skrip run.sh ke skrip startup sistem Anda, yang memastikan bahwa skrip dijalankan setelah setiap kali VM dimulai ulang.
  3. Pada setiap host VM, jalankan skrip run.sh:

    cd traffic-director-xdsv3
    sudo ./run.sh start
    
  4. 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:

  1. 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.

  2. Dalam file sidecar.env, tetapkan nilai SERVICE_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.

  3. Proxy file bantuan tidak diwajibkan secara ketat untuk dijalankan sebagai pengguna khusus yang dikecualikan dari intersepsi lalu lintas. Namun, tindakan ini tetap direkomendasikan.

  4. Setelah Anda menjalankan skrip run.sh, seperti yang diarahkan dalam prosedur utama, iptables dikonfigurasikan untuk intersepsi dan pengalihan rentang, saja.

  5. 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})"