Panduan ini menjelaskan cara menyiapkan mesh multi-cluster untuk platform berikut:
- GKE on VMware
- Google Distributed Cloud Virtual untuk Bare Metal
- GKE on AWS
- Amazon EKS
Panduan ini menunjukkan cara menyiapkan dua cluster, tetapi Anda dapat memperluas proses ini untuk menggabungkan sejumlah cluster ke dalam mesh Anda.
Sebelum memulai
Panduan ini mengasumsikan bahwa Anda telah menginstal Anthos Service Mesh menggunakan
asmcli install
. Anda memerlukan
asmcli
dan paket konfigurasi yang didownload oleh asmcli
ke
direktori yang Anda tentukan di --output_dir
saat menjalankan asmcli install
.
Jika perlu melakukan penyiapan, ikuti langkah-langkah di
Memulai untuk:
- Instal alat yang diperlukan
- Download
asmcli
- Memberikan izin admin cluster
- Memvalidasi project dan cluster
Anda memerlukan akses ke file kubeconfig untuk semua cluster yang Anda siapkan di mesh.
Menyiapkan variabel dan placeholder lingkungan
Anda memerlukan variabel lingkungan berikut saat menginstal gateway east-west.
Buat variabel lingkungan untuk nomor project. Dalam perintah berikut, ganti FLEET_PROJECT_ID dengan project ID dari project host armada.
export PROJECT_NUMBER=$(gcloud projects describe FLEET_PROJECT_ID --format="value(projectNumber)")
Buat variabel lingkungan untuk ID mesh.
export MESH_ID="proj-${PROJECT_NUMBER}"
Buat variabel lingkungan untuk nama cluster dalam format yang diperlukan
asmcli
:export CLUSTER_1="cn-FLEET_PROJECT_ID-global-CLUSTER_NAME_1" export CLUSTER_2="cn-FLEET_PROJECT_ID-global-CLUSTER_NAME_2"
Menginstal gateway timur-barat
Dalam perintah berikut:
Ganti
CLUSTER_NAME_1
danCLUSTER_NAME_2
dengan nama cluster Anda.Ganti
PATH_TO_KUBECONFIG_1
danPATH_TO_KUBECONFIG_2
dengan file kubeconfig untuk cluster Anda.
Mesh CA
Instal gateway di cluster1 yang dikhususkan untuk traffic timur-barat ke
$CLUSTER_2
. Secara default, gateway ini akan bersifat publik di Internet. Untuk mencegah serangan eksternal, sistem produksi mungkin memerlukan pembatasan akses tambahan, misalnya aturan firewall.asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh ${MESH_ID} \ --cluster ${CLUSTER_1} \ --network default \ --revision asm-1118-4 | \ istioctl --kubeconfig=PATH_TO_KUBECONFIG_1 install -y --set spec.values.global.pilotCertProvider=kubernetes -f -
Instal gateway di
$CLUSTER_2
yang dikhususkan untuk traffic timur-barat untuk$CLUSTER_1
.asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh ${MESH_ID} \ --cluster ${CLUSTER_2} \ --network default \ --revision asm-1118-4 | \ istioctl install --kubeconfig=PATH_TO_KUBECONFIG_2 -y --set spec.values.global.pilotCertProvider=kubernetes -f -
Istio CA
Instal gateway di cluster1 yang dikhususkan untuk traffic timur-barat ke
$CLUSTER_2
. Secara default, gateway ini akan bersifat publik di Internet. Untuk mencegah serangan eksternal, sistem produksi mungkin memerlukan pembatasan akses tambahan, misalnya aturan firewall.asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh ${MESH_ID} \ --cluster ${CLUSTER_1} \ --network default \ --revision asm-1118-4 | \ istioctl --kubeconfig=PATH_TO_KUBECONFIG_1 install -y -f -
Instal gateway di
$CLUSTER_2
yang dikhususkan untuk traffic timur-barat untuk$CLUSTER_1
.asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh ${MESH_ID} \ --cluster ${CLUSTER_2} \ --network default \ --revision asm-1118-4 | \ istioctl --kubeconfig=PATH_TO_KUBECONFIG_2 install -y -f -
Layanan yang menampakkan
Karena cluster berada di jaringan terpisah, Anda harus mengekspos semua layanan
(*.local
) di gateway timur-barat pada kedua cluster. Meskipun gateway ini bersifat publik di Internet, layanan di belakangnya hanya dapat diakses oleh layanan yang memiliki sertifikat mTLS dan ID workload tepercaya, seolah-olah berada di jaringan yang sama.
Mengekspos layanan melalui gateway timur-barat untuk
CLUSTER_NAME_1
.kubectl --kubeconfig=PATH_TO_KUBECONFIG_1 apply -n istio-system -f \ asm/istio/expansion/expose-services.yaml
Mengekspos layanan melalui gateway timur-barat untuk
CLUSTER_NAME_2
.kubectl --kubeconfig=PATH_TO_KUBECONFIG_2 apply -n istio-system -f \ asm/istio/expansion/expose-services.yaml
Aktifkan penemuan endpoint
Jalankan perintah asmcli create-mesh
untuk mengaktifkan penemuan endpoint. Contoh ini hanya menampilkan dua cluster, tetapi Anda dapat menjalankan perintah untuk mengaktifkan penemuan endpoint pada cluster tambahan, sesuai dengan jumlah maksimum cluster yang diizinkan yang dapat Anda tambahkan ke fleet.
./asmcli create-mesh \
FLEET_PROJECT_ID \
PATH_TO_KUBECONFIG_1 \
PATH_TO_KUBECONFIG_2