Menyiapkan mesh hybrid
Halaman ini menjelaskan cara menyiapkan mesh hybrid 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 menyiapkan dua klaster, tetapi Anda dapat memperluasnya untuk menggabungkan sejumlah cluster ke dalam {i>mesh<i} Anda.
Prasyarat
- Semua cluster harus didaftarkan ke project host perangkat.
- Semua cluster GKE harus berada dalam konfigurasi VPC bersama di jaringan yang sama.
- Alamat bidang kontrol Kubernetes cluster dan alamat gateway harus yang dapat dijangkau dari setiap cluster di {i>mesh<i}. Project Google Cloud tempat Lokasi cluster GKE 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 Lokal yang mencakup Google Distributed Cloud dan Google Distributed Cloud, Alamat bidang kontrol Kubernetes dan alamat gateway harus dapat dijangkau dari pod pada cluster GKE. Sebaiknya gunakan CloudVPN untuk menghubungkan Subnet cluster GKE dengan jaringan cluster Lokal.
- Jika Anda menggunakan Istio CA, gunakan root certificate kustom yang sama untuk semua cluster.
Sebelum memulai
Anda memerlukan akses ke file {i>kubeconfig<i}
untuk semua cluster yang
disiapkan di jala. Untuk cluster GKE, guna membuat
file kubeconfig baru untuk cluster ini, Anda dapat mengekspor KUBECONFIG
env dengan
jalur lengkap file sebagai nilai di
terminal Anda dan menghasilkan file kubeconfig
entri.
Menyiapkan placeholder dan variabel lingkungan
Anda memerlukan variabel lingkungan berikut saat menginstal east-west.
Buat variabel lingkungan untuk nomor project. Dalam , ganti FLEET_PROJECT_ID dengan project ID project host perangkat.
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 disetel ke nama jaringan cluster:
ekspor NETWORK_1="PROJECT_ID-CLUSTER_NETWORK"
Cluster lain menggunakan
default
:ekspor NETWORK_2="default"
Perlu diperhatikan bahwa jika Anda menginstal Cloud Service Mesh pada cluster lain dengan nilai yang berbeda untuk
--network_id
, Anda harus meneruskan nilai yang sama menjadi nilai NETWORK_2.
Menginstal gateway east-west
Instal gateway di CLUSTER_1 (cluster GKE Anda) yang khusus untuk east-west traffic ke CLUSTER_2 (cluster lokal Anda):
asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh ${MESH_ID} \ --network ${NETWORK_1} \ --revision asm-1204-0 | \ ./istioctl --kubeconfig=PATH_TO_KUBECONFIG_1 install -y -f -
Perhatikan bahwa gateway ini bersifat publik di Internet secara default. Produksi sistem mungkin memerlukan pembatasan akses tambahan, misalnya firewall, keamanan, untuk mencegah serangan eksternal.
Instal gateway di CLUSTER_2 yang dikhususkan untuk traffic timur-barat untuk CLUSTER_1.
asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh ${MESH_ID} \ --network ${NETWORK_2} \ --revision asm-1204-0 | \ ./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 timur-barat di kedua cluster. Meskipun gateway ini
publik di internet, layanan di belakangnya hanya
dapat diakses oleh layanan dengan
sertifikat mTLS yang tepercaya dan ID beban kerja, seolah-olah berada di
jaringan.
Mengekspos layanan melalui gateway timur-barat 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. Ini
contoh hanya menunjukkan dua klaster, tetapi Anda dapat menjalankan perintah untuk mengaktifkan
penemuan endpoint pada cluster tambahan,
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 file bantuan.