Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Menyiapkan mesh multi-cluster di GKE
Panduan ini menjelaskan cara menggabungkan dua cluster ke dalam satu Cloud Service Mesh menggunakan
Mesh CA atau
Istio CA,
dan mengaktifkan load balancing lintas cluster. Anda dapat dengan mudah memperluas
proses ini untuk menggabungkan sejumlah cluster ke dalam mesh.
Konfigurasi Cloud Service Mesh multi-cluster dapat menyelesaikan beberapa skenario perusahaan
penting, seperti skala, lokasi, dan isolasi. Untuk mengetahui informasi selengkapnya, lihat
Kasus penggunaan multi-cluster.
Prasyarat
Panduan ini mengasumsikan bahwa Anda memiliki dua atau beberapa cluster GKE Google Cloud yang memenuhi persyaratan berikut:
Cloud Service Mesh versi 1.11 atau yang lebih baru yang diinstal di cluster menggunakan asmcli install. Anda memerlukan
asmcli, alat istioctl, dan sampel yang didownload asmcli ke
direktori yang Anda tentukan di --output_dir saat menjalankan asmcli install
Jika perlu disiapkan, ikuti langkah-langkah di
Menginstal alat dependen dan memvalidasi cluster
untuk:
Cluster dalam mesh Anda harus memiliki konektivitas di antara semua pod sebelum Anda
mengonfigurasi Cloud Service Mesh. Selain itu, jika Anda bergabung ke cluster yang tidak berada dalam project yang sama, cluster tersebut harus terdaftar ke project host fleet yang sama, dan cluster harus berada dalam konfigurasi VPC bersama bersama-sama di jaringan yang sama. Sebaiknya Anda juga memiliki satu project untuk menghosting VPC bersama, dan dua project layanan untuk membuat cluster. Untuk informasi
selengkapnya, lihat
Menyiapkan cluster dengan VPC Bersama.
Jika Anda menggunakan CA Istio, gunakan sertifikat root kustom yang sama untuk kedua cluster.
Jika Cloud Service Mesh Anda dibuat di cluster pribadi, sebaiknya
buat satu subnet
di VPC yang sama. Jika tidak, Anda harus memastikan bahwa:
Bidang kontrol dapat menjangkau bidang kontrol cluster pribadi jarak jauh melalui
IP pribadi cluster.
Jika ini adalah cluster yang baru dibuat, pastikan untuk mengambil kredensial untuk setiap
cluster dengan perintah gcloud berikut. Jika tidak, context terkait
tidak akan tersedia untuk digunakan di langkah berikutnya dalam panduan ini.
Perintah bergantung pada jenis cluster Anda, baik regional maupun zonal:
Dalam beberapa kasus, Anda perlu membuat aturan firewall untuk mengizinkan traffic lintas cluster. Misalnya, Anda perlu membuat aturan firewall jika:
Anda menggunakan subnet yang berbeda untuk cluster dalam mesh.
Pod Anda membuka port selain 443 dan 15002.
GKE otomatis menambahkan aturan firewall ke setiap node untuk mengizinkan
traffic dalam subnet yang sama. Jika mesh Anda berisi beberapa subnet, Anda harus
menyiapkan aturan firewall secara eksplisit untuk mengizinkan traffic lintas subnet. Anda harus
menambahkan aturan firewall baru
untuk setiap subnet guna mengizinkan blok CIDR IP sumber dan menargetkan port dari semua
traffic masuk.
Petunjuk berikut memungkinkan komunikasi antara semua cluster dalam project Anda atau hanya antara $CLUSTER_1 dan $CLUSTER_2.
Kumpulkan informasi tentang jaringan cluster Anda.
Semua cluster project
Jika cluster berada dalam project yang sama, Anda dapat menggunakan perintah berikut untuk mengizinkan komunikasi antar-cluster di project Anda. Jika ada cluster dalam project yang tidak ingin Anda ekspos, gunakan perintah di tab Specific clusters.
TAGS=""forCLUSTERin${CLUSTER_1}${CLUSTER_2}doTAGS+=$(gcloudcomputefirewall-ruleslist--filter="Name:$CLUSTER*"--format="value(targetTags)"|uniq) && TAGS+=","doneTAGS=${TAGS::-1}echo"Network tags for pod ranges are $TAGS"
gcloudcomputefirewall-rulescreateasm-multicluster-pods\--allow=tcp,udp,icmp,esp,ah,sctp\--network=gke-cluster-vpc\--direction=INGRESS\--priority=900--network=VPC_NAME\--source-ranges="${ALL_CLUSTER_CIDRS}"\--target-tags=$TAGS
Mengonfigurasi penemuan endpoint
Langkah-langkah yang diperlukan untuk mengonfigurasi penemuan endpoint bergantung pada apakah Anda lebih suka menggunakan API deklaratif di seluruh cluster dalam fleet, atau mengaktifkannya secara manual di cluster publik atau cluster pribadi.
Untuk mengonfigurasi penemuan endpoint di antara cluster GKE, Anda menjalankan
asmcli create-mesh. Perintah ini:
Mendaftarkan semua cluster ke fleet yang sama.
Mengonfigurasi mesh agar memercayai workload identity fleet.
Membuat secret jarak jauh.
Anda dapat menentukan URI untuk setiap cluster atau jalur
file kubeconfig.
URI Cluster
Dalam perintah berikut, ganti FLEET_PROJECT_ID dengan project ID project host fleet dan URI cluster dengan nama cluster, zona, atau region, dan project ID untuk setiap cluster.
Contoh ini hanya menampilkan dua cluster, tetapi Anda dapat menjalankan perintah untuk mengaktifkan
penemuan endpoint di cluster tambahan, sesuai dengan
jumlah maksimum cluster yang diizinkan yang dapat Anda tambahkan ke fleet.
Dalam perintah berikut, ganti FLEET_PROJECT_ID dengan project ID project host fleet dan PATH_TO_KUBECONFIG dengan jalur ke setiap file kubeconfig. Contoh ini hanya menampilkan dua cluster, tetapi Anda dapat menjalankan perintah untuk mengaktifkan penemuan endpoint di cluster tambahan, sesuai dengan jumlah maksimum cluster yang diizinkan yang dapat Anda tambahkan ke fleet.
Konfigurasikan secret jarak jauh untuk mengizinkan akses server API ke cluster ke
control plane Cloud Service Mesh cluster lain. Perintah ini bergantung pada jenis Cloud Service Mesh Anda (dalam cluster atau terkelola):
A. Untuk Cloud Service Mesh dalam cluster, Anda harus mengonfigurasi IP pribadi, bukan IP publik, karena IP publik tidak dapat diakses:
Saat men-deploy beberapa cluster pribadi, bidang kontrol Cloud Service Mesh di
setiap cluster perlu memanggil bidang kontrol GKE dari
cluster jarak jauh. Untuk mengizinkan traffic, Anda harus menambahkan rentang alamat Pod di
cluster panggilan ke jaringan yang diizinkan dari cluster jarak jauh.
Ikuti bagian ini hanya jika semua kondisi berikut berlaku untuk mesh Anda:
Anda menggunakan cluster pribadi.
Anda menggunakan region yang berbeda untuk cluster di mesh.
Anda harus mengaktifkan akses global bidang kontrol
untuk mengizinkan bidang kontrol Cloud Service Mesh di setiap cluster memanggil
bidang kontrol GKE dari cluster jarak jauh.
Bagian privateClusterConfig dalam output menampilkan status
masterGlobalAccessConfig.
Memverifikasi konektivitas multicluster
Bagian ini menjelaskan cara men-deploy contoh layanan HelloWorld dan Sleep
ke lingkungan multi-cluster untuk memverifikasi bahwa load balancing lintas cluster
berfungsi.
Menetapkan variabel untuk direktori contoh
Buka tempat asmcli didownload, lalu jalankan perintah berikut untuk menetapkan ASM_VERSION
exportASM_VERSION="$(./asmcli--version)"
Tetapkan folder kerja ke sampel yang Anda gunakan untuk memverifikasi bahwa load balancing lintas cluster berfungsi. Contoh tersebut terletak di subdirektori dalam direktori --output_dir yang Anda tentukan dalam perintah asmcli install. Dalam perintah berikut, ubah
OUTPUT_DIR ke direktori yang Anda tentukan di
--output_dir.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2024-12-04 UTC."],[],[]]