Menyiapkan mesh hybrid
Halaman ini menjelaskan cara menyiapkan mesh campuran untuk platform berikut:
- Hybrid: GKE di Google Cloud dan Google Distributed Cloud (pratinjau)
- Hybrid: GKE di Google Cloud dan Google Distributed Cloud (pratinjau)
Dengan mengikuti petunjuk ini, Anda akan menyiapkan dua cluster, tetapi Anda dapat memperluas proses ini untuk menggabungkan sejumlah cluster ke dalam mesh.
Prasyarat
- Semua cluster harus terdaftar ke project host fleet yang sama.
- Semua cluster GKE harus berada dalam konfigurasi VPC bersama di jaringan yang sama.
- Alamat bidang kontrol Kubernetes cluster dan alamat gateway harus dapat dijangkau dari setiap cluster dalam mesh. Project Google Cloud tempat cluster GKE berada harus diizinkan untuk membuat jenis load balancing eksternal. Sebaiknya gunakan jaringan yang diizinkan dan aturan firewall VPC untuk membatasi akses.
- Cluster pribadi, termasuk cluster pribadi GKE, tidak didukung. Jika Anda menggunakan cluster On-Premises, termasuk Google Distributed Cloud dan Google Distributed Cloud, alamat panel kontrol Kubernetes dan alamat gateway harus dapat dijangkau dari pod di cluster GKE. Sebaiknya gunakan CloudVPN untuk menghubungkan subnet cluster GKE dengan jaringan cluster Lokal.
- Jika Anda menggunakan CA Istio, gunakan sertifikat root kustom yang sama untuk semua cluster.
Sebelum memulai
Anda memerlukan akses ke file kubeconfig untuk semua cluster yang Anda
siapkan di mesh. Untuk cluster GKE, guna membuat
file kubeconfig baru untuk cluster, Anda dapat mengekspor env KUBECONFIG
dengan
jalur lengkap file sebagai nilai di terminal dan membuat entri
kubeconfig.
Menyiapkan variabel lingkungan dan placeholder
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 fleet.
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 jaringan.
Cluster GKE secara default menggunakan nama jaringan cluster:
export NETWORK_1="PROJECT_ID-CLUSTER_NETWORK"
Cluster lain menggunakan
default
:export NETWORK_2="default"
Perhatikan bahwa jika Anda menginstal Cloud Service Mesh di cluster lain dengan nilai yang berbeda untuk
--network_id
, Anda harus meneruskan nilai yang sama ke NETWORK_2.
Menginstal gateway timur-barat
Instal gateway di CLUSTER_1 (cluster GKE Anda) yang didedikasikan untuk traffic east-west ke CLUSTER_2 (cluster on-premise Anda):
asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh ${MESH_ID} \ --network ${NETWORK_1} \ --revision asm-1226-2 | \ ./istioctl --kubeconfig=PATH_TO_KUBECONFIG_1 install -y -f -
Perhatikan bahwa gateway ini bersifat publik di Internet secara default. Sistem produksi mungkin memerlukan batasan akses tambahan, misalnya aturan firewall, untuk mencegah serangan eksternal.
Instal gateway di CLUSTER_2 yang didedikasikan untuk traffic east-west untuk CLUSTER_1.
asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh ${MESH_ID} \ --network ${NETWORK_2} \ --revision asm-1226-2 | \ ./istioctl --kubeconfig=PATH_TO_KUBECONFIG_2 install -y -f -
Mengekspos layanan
Karena cluster berada di jaringan terpisah, Anda perlu mengekspos semua layanan
(\*.local
) di gateway east-west di kedua cluster. Meskipun gateway ini bersifat publik di internet, layanan di belakangnya hanya dapat diakses oleh layanan dengan sertifikat mTLS tepercaya dan ID workload, seolah-olah berada di jaringan yang sama.
Mengekspos layanan melalui gateway east-west untuk setiap cluster
kubectl --kubeconfig=PATH_TO_KUBECONFIG_1 apply -n istio-system -f \
asm/istio/expansion/expose-services.yaml
kubectl --kubeconfig=PATH_TO_KUBECONFIG_2 apply -n istio-system -f \
asm/istio/expansion/expose-services.yaml
Mengaktifkan 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 di cluster tambahan, yang tunduk pada
batas layanan GKE Hub.
./asmcli create-mesh \
FLEET_PROJECT_ID \
PATH_TO_KUBECONFIG_1 \
PATH_TO_KUBECONFIG_2
Memverifikasi konektivitas multi-cluster
Lihat Memasukkan proxy sidecar.