Menyiapkan mesh multi-cluster secara lokal

Panduan ini menjelaskan cara menyiapkan Anthos Service Mesh dengan beberapa GKE di VMware dan di bare metal. Anda dapat memperluas proses ini untuk menggabungkan sejumlah cluster ke dalam mesh Anda.

Panduan ini mengasumsikan bahwa Anda sudah menginstal GKE di VMware atau pada bare metal menggunakan langkah-langkah yang dijelaskan dalam Menginstal Anthos Service Mesh secara lokal. Jika Anda sudah menginstal Anthos Service Mesh versi sebelumnya, lihat Mengupgrade Anthos Service Mesh secara lokal. Panduan ini menyebut cluster sebagai cluster1 pada network1 dan cluster2 pada network2. Contoh ini juga menggunakan variabel lingkungan untuk menentukan konteks cluster sebagai CTX_CLUSTER1 dan CTX_CLUSTER2.

Konfigurasi Anthos Service Mesh multi-cluster dapat menyelesaikan beberapa skenario perusahaan penting, seperti skala, lokasi, dan isolasi. Untuk mengetahui informasi selengkapnya, lihat Kasus penggunaan multi-cluster. Selain itu, Anda harus mengoptimalkan aplikasi untuk mendapatkan manfaat maksimal dari mesh layanan. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan aplikasi untuk Anthos Service Mesh.

Persyaratan

Sebelum memulai, panduan ini mengasumsikan bahwa Anda menggunakan cluster baru atau yang sudah ada yang dibuat dengan menggunakan langkah-langkah yang dijelaskan dalam Menginstal Anthos Service Mesh secara lokal.

  • Persyaratan untuk panduan ini adalah selain yang tercantum dalam Menginstal Anthos Service Mesh secara lokal.

  • Anda akan memerlukan paket konfigurasi yang digunakan sebelumnya untuk menginstal Anthos Service Mesh di cluster Anda. Jika memerlukan salinan lain, Anda dapat mendownloadnya dengan menggunakan perintah:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.11 asm
    

Menginstal gateway timur-barat

  1. Instal gateway di cluster1 yang dikhususkan untuk traffic timur-barat. Secara default, gateway ini akan bersifat publik di Internet. Sistem produksi mungkin memerlukan pembatasan akses tambahan, misalnya aturan firewall, untuk mencegah serangan eksternal.

    asm/istio/expansion/gen-eastwest-gateway.sh \
    --mesh mesh1 --cluster cluster1 --network network1 --revision asm-1118-4 | \
    istioctl --context="${CTX_CLUSTER1}" install -y -f -
    
  2. Instal gateway di cluster2 yang dikhususkan untuk traffic timur-barat untuk cluster1.

    /asm/istio/expansion/gen-eastwest-gateway.sh \
    --mesh mesh1 --cluster cluster2 --network network2 | \
    istioctl --context="${CTX_CLUSTER2}" 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.

  1. Mengekspos layanan melalui gateway timur-barat untuk cluster1.

    kubectl --context="${CTX_CLUSTER1}" apply -n istio-system -f \
    asm/istio/expansion/expose-services.yaml
    
  2. Mengekspos layanan melalui gateway timur-barat untuk cluster2.

    kubectl --context="${CTX_CLUSTER2}" apply -n istio-system -f \
    asm/istio/expansion/expose-services.yaml
    

Mengaktifkan penemuan endpoint

  1. Instal rahasia jarak jauh di cluster2 yang menyediakan akses ke server API cluster1.

    istioctl x create-remote-secret \
    --context="${CTX_CLUSTER1}" \
    --name=cluster1 | \
    kubectl apply -f - --context="${CTX_CLUSTER2}"
    
  2. Instal rahasia jarak jauh di cluster1 yang menyediakan akses ke server API cluster2.

    istioctl x create-remote-secret \
    --context="${CTX_CLUSTER2}" \
    --name=cluster2 | \
    kubectl apply -f - --context="${CTX_CLUSTER1}"
    

Apa langkah selanjutnya?