Membuat cluster hybrid Google Distributed Cloud di VM Compute Engine menggunakan Terraform

Dokumen ini menunjukkan cara menyiapkan VM di Compute Engine dengan Terraform agar Anda dapat menginstal dan mencoba Google Distributed Cloud dalam Ketersediaan Tinggi (HA). Untuk mengetahui informasi tentang cara menggunakan Google Cloud CLI untuk ini, lihat Mencoba Google Distributed Cloud di VM Compute Engine.

Anda dapat mencoba Google Distributed Cloud dengan cepat dan tanpa harus menyiapkan perangkat keras apa pun. Skrip Terraform yang disediakan membuat jaringan VM pada Compute Engine yang dapat digunakan untuk menjalankan Google Distributed Cloud. Di sini kita menggunakan deployment cluster hybrid model transformer.

Selesaikan langkah-langkah berikut untuk menjalankan cluster contoh:

  1. Menjalankan skrip Terraform untuk menyiapkan jaringan VM di Compute Engine
  2. Men-deploy cluster hybrid
  3. Memverifikasi cluster Anda

Sebelum memulai

Deployment ini memerlukan resource berikut:

Menyiapkan jaringan VM di Compute Engine

Di bagian ini, Anda akan menggunakan skrip Terraform dari repositori anthos-samples. Skrip ini mengonfigurasi Compute Engine dengan resource berikut:

  • Enam VM untuk men-deploy cluster hybrid:
    • Satu VM admin digunakan untuk men-deploy cluster hybrid ke komputer lainnya.
    • Tiga VM untuk tiga node bidang kontrol diperlukan untuk menjalankan cluster hybrid bidang kontrol.
    • Dua VM untuk dua worker node diperlukan untuk menjalankan workload secara hybrid .
  • Jaringan overlay VxLAN di antara semua node untuk mengemulasi konektivitas L2.
  • Akses SSH ke node control-plane dan worker dari VM admin.

Infrastruktur bare metal di Google Cloud menggunakan VM Compute Engine

Anda dapat mengubah jumlah node dalam cluster dengan menambahkan nama node baru ke variabel Terraform instance_count:

###################################################################################
# The recommended instance count for High Availability (HA) is 3 for Control plane
# and 2 for Worker nodes.
###################################################################################
variable "instance_count" {
  description = "Number of instances to provision per layer (Control plane and Worker nodes) of the cluster"
  type        = map(any)
  default = {
    "controlplane" : 3
    "worker" : 2
  }
}

  1. Download skrip Terraform untuk contoh anthos-bm-gcp-terraform:

    git clone https://github.com/GoogleCloudPlatform/anthos-samples
    cd anthos-samples/anthos-bm-gcp-terraform
    
  2. Perbarui file terraform.tfvars.sample untuk menyertakan variabel khusus lingkungan Anda:

    project_id       = "PROJECT_ID"
    region           = "GOOGLE_CLOUD_REGION"
    zone             = "GOOGLE_CLOUD_ZONE"
    credentials_file = "PATH_TO_GOOGLE_CLOUD_SERVICE_ACCOUNT_KEY_FILE"
    
  3. Ganti nama file terraform.tfvars.sample dengan nama default yang digunakan oleh {i>terraform<i} untuk file variabel:

    mv terraform.tfvars.sample terraform.tfvars
    
  4. Lakukan inisialisasi direktori sampel sebagai direktori kerja Terraform. Ini akan mengatur konfigurasi pengelolaan status Terraform yang diperlukan, mirip dengan git init:

    terraform init
    
  5. Membuat rencana eksekusi Terraform. Langkah ini membandingkan status resource, memverifikasi skrip, dan membuat rencana eksekusi:

    terraform plan
    
  6. Terapkan perubahan yang dijelaskan dalam skrip Terraform. Langkah ini menjalankan paket Anda ke penyedia yang ditentukan (dalam hal ini Google Cloud) untuk mencapai tujuan yang diinginkan status resource:

    terraform apply  # when prompted to confirm the Terraform plan, type 'Yes' and enter
    

Men-deploy cluster hybrid

Setelah eksekusi Terraform selesai, Anda siap men-deploy hybrid .

  1. Gunakan SSH untuk terhubung ke host admin:

    gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONE
    

    Anda dapat mengabaikan pesan apa pun tentang mengupdate VM dan menyelesaikan proses ini tutorial. Jika Anda berencana untuk menyimpan VM sebagai lingkungan tes, Anda mungkin ingin mengupdate OS atau meng-upgrade ke rilis berikutnya seperti dijelaskan dalam Dokumentasi Ubuntu.

  2. Jalankan blok kode berikut untuk membuat campuran cluster1 pada VM Compute Engine yang dikonfigurasi:

    sudo ./run_initialization_checks.sh && \
    sudo bmctl create config -c cluster1 && \
    sudo cp ~/cluster1.yaml bmctl-workspace/cluster1 && \
    sudo bmctl create cluster -c cluster1
    

Menjalankan perintah bmctl akan memulai penyiapan cluster hybrid baru. Ini termasuk melakukan pemeriksaan {i>preflight<i} pada {i>node<i}, membuat admin dan pengguna serta mendaftarkan cluster ke Google Cloud menggunakan Connect. Seluruh penyiapan dapat memerlukan waktu hingga 15 menit. Anda akan melihat output berikut sebagai cluster sedang dibuat:

    Created config: bmctl-workspace/cluster1/cluster1.yaml
    Creating bootstrap cluster... OK
    Installing dependency components... OK
    Waiting for preflight check job to finish... OK
    - Validation Category: machines and network
            - [PASSED] 10.200.0.3
            - [PASSED] 10.200.0.4
            - [PASSED] 10.200.0.5
            - [PASSED] 10.200.0.6
            - [PASSED] 10.200.0.7
            - [PASSED] gcp
            - [PASSED] node-network
    Flushing logs... OK
    Applying resources for new cluster
    Waiting for cluster to become ready OK
    Writing kubeconfig file
    kubeconfig of created cluster is at bmctl-workspace/cluster1/cluster1-kubeconfig, please run
    kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig get nodes
    to get cluster node status.
    Please restrict access to this file as it contains authentication credentials of your cluster.
    Waiting for node pools to become ready OK
    Moving admin cluster resources to the created admin cluster
    Flushing logs... OK
    Deleting bootstrap cluster... OK

Memverifikasi dan berinteraksi dengan cluster

Anda dapat menemukan file kubeconfig cluster Anda pada komputer admin di Direktori bmctl-workspace. Untuk memverifikasi deployment Anda, selesaikan langkah-langkah berikut langkah.

  1. Jika Anda memutuskan sambungan dari host admin, gunakan SSH untuk menghubungkan ke host:

    # You can copy the command from the output of the Terraform execution above
    gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONE
    
  2. Tetapkan variabel lingkungan KUBECONFIG dengan jalur ke cluster file konfigurasi untuk menjalankan perintah kubectl di cluster:

    export CLUSTER_ID=cluster1
    export KUBECONFIG=$HOME/bmctl-workspace/$CLUSTER_ID/$CLUSTER_ID-kubeconfig
    kubectl get nodes
    

    Anda akan melihat node cluster yang dicetak, mirip dengan output berikut:

    NAME          STATUS   ROLES    AGE   VERSION
    cluster1-abm-cp1-001   Ready    master   17m   v1.18.6-gke.6600
    cluster1-abm-cp2-001   Ready    master   16m   v1.18.6-gke.6600
    cluster1-abm-cp3-001   Ready    master   16m   v1.18.6-gke.6600
    cluster1-abm-w1-001    Ready    <none>   14m   v1.18.6-gke.6600
    cluster1-abm-w2-001    Ready    <none>   14m   v1.18.6-gke.6600
    

Login ke cluster Anda dari konsol Google Cloud

Untuk mengamati workload di konsol Google Cloud, Anda harus login ke .

Untuk mendapatkan petunjuk dan informasi selengkapnya terkait login ke cluster, lihat Login ke cluster dari Konsol Google Cloud.

Pembersihan

Anda dapat menghapus penyiapan cluster dengan dua cara.

Konsol

Terraform

  • Batalkan pendaftaran cluster sebelum menghapus semua resource yang dibuat oleh Terraform.
# Use SSH to connect to the admin host
gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONE

# Reset the cluster
export CLUSTER_ID=cluster1
export KUBECONFIG=$HOME/bmctl-workspace/$CLUSTER_ID/$CLUSTER_ID-kubeconfig
sudo bmctl reset --cluster $CLUSTER_ID

# log out of the admin host
exit
  • Gunakan Terraform untuk menghapus semua resource.
terraform destroy --auto-approve