Membuat VPC dan cluster dengan Terraform

Ringkasan

Terraform adalah alat open source untuk mengonfigurasi lingkungan cloud seperti AWS dan menginstal software seperti Kubernetes. Anda dapat mengonfigurasi lingkungan AWS dan membuat cluster di dalamnya dengan Terraform atau petunjuk penginstalan GKE on AWS.

Halaman ini menjelaskan cara menggunakan Terraform untuk mengonfigurasi lingkungan AWS Anda dan menginstal cluster menggunakan contoh konfigurasi yang disimpan di GitHub. Untuk menggunakan skrip ini, Anda harus memahami Terraform secara dasar. Secara khusus, Anda harus mengedit file konfigurasi Terraform untuk menambahkan informasi project dan pengguna Anda sendiri, serta membuat perubahan yang diperlukan pada konfigurasi cluster default.

Untuk mengonfigurasi lingkungan AWS dan membuat cluster tanpa menggunakan Terraform, lihat Ringkasan prasyarat AWS dan petunjuk untuk membuat cluster.

Fungsi skrip

Skrip ini mengonfigurasi Terraform untuk membuat VPC AWS dan men-deploy cluster di dalamnya. VPC yang dihasilkan memenuhi semua prasyarat GKE di AWS dan memiliki topologi jaringan yang sama dengan VPC yang dibuat berdasarkan petunjuk pembuatan VPC manual Google.

Cluster yang dibuat oleh kumpulan skrip memiliki karakteristik berikut:

  • tiga node bidang kontrol (satu dari masing-masing dari tiga zona ketersediaan yang dikonfigurasi). Node ini berjenis t3.large.
  • Satu kumpulan node dengan dua node jenis t3.large. Kumpulan node ini di-deploy di region us-east-1 AWS dan dapat menskalakan otomatis ke lima node.

Cara mengubah VPC dan cluster default

Anda dapat mengubah karakteristik VPC dan cluster yang dibuat oleh skrip Terraform dengan mengedit file Terraform yang sesuai.

  • Sesuaikan region dan zona ketersediaan dengan mengedit file variables.tf.
  • Ubah jenis instance AWS.
  • Ubah karakteristik VPC, termasuk subnet, zona ketersediaan, dan load balancer, dengan mengedit file di subfolder modules/vpc.

Untuk mengetahui daftar region AWS yang dikontrol dari region Google Cloud tertentu dan versi Kubernetes terkaitnya, jalankan perintah berikut:

gcloud container aws get-server-config --location `GOOGLE_CLOUD_REGION`

Ganti GOOGLE_CLOUD_REGION dengan nama region Google Cloud tempat Anda ingin GKE di AWS untuk mengontrol cluster Anda.

Prasyarat

  1. Instal Google Cloud CLI dengan petunjuk penginstalan Google Cloud CLI. Jika Anda sudah menginstalnya, gunakan petunjuk ini untuk memastikan Anda menjalankan versi 412.0.0 atau yang lebih tinggi.

  2. Instal AWS CLI dengan petunjuk penginstalan AWS CLI.

  3. Buat kunci akses AWS.

  4. Konfigurasikan lingkungan AWS lokal Anda dengan perintah berikut:

    aws configure
    

Menyiapkan Terraform

  1. Konfigurasikan autentikasi Google Cloud CLI dengan menjalankan perintah berikut:

    gcloud config set project GOOGLE_PROJECT_ID
    gcloud auth application-default login --no-launch-browser
    
  2. Aktifkan layanan yang diperlukan di project Google Cloud Anda.

    gcloud --project="GOOGLE_PROJECT_ID" services enable \
      gkemulticloud.googleapis.com \
      gkeconnect.googleapis.com \
      connectgateway.googleapis.com \
      cloudresourcemanager.googleapis.com \
      anthos.googleapis.com \
      logging.googleapis.com \
      monitoring.googleapis.com \
      opsconfigmonitoring.googleapis.com
    

    Ganti GOOGLE_PROJECT_ID dengan project ID Google Anda.

  3. Buat salinan lokal repositori dan ubah ke folder AWS:

    git clone https://github.com/GoogleCloudPlatform/anthos-samples.git
    cd anthos-samples/anthos-multi-cloud/AWS
    

Men-deploy GKE di AWS

  1. Edit baris berikut dalam file terraform.tfvars untuk mengganti nilai default:

    gcp_project_id = GOOGLE_PROJECT_ID
    admin_users = ["GCP_ACCOUNT_EMAIL"]
    

    Ganti kode berikut:

    • GOOGLE_PROJECT_ID: ID project Google Anda. Anda dapat menemukannya di sisi kiri halaman dasbor Google Cloud Console.

    • ACCOUNT_EMAILS: daftar alamat email yang dipisahkan koma, yang dapat login ke cluster setelah dibuat—misalnya "admin@example.com","operator@example.com". Setidaknya satu alamat harus memiliki akun Google Cloud. Untuk menambahkan penyedia identitas lain ke cluster Anda, baca bagian Mengelola identitas dengan GKE Identity Service.

  2. Lakukan inisialisasi dan buat paket Terraform:

    terraform init
    

    Terraform menginstal semua library yang diperlukan, seperti penyedia Google Cloud.

  3. Terapkan paket Terraform untuk membuat AWS Virtual Private Cloud dan cluster:

    terraform apply
    

    Ikuti petunjuk untuk mulai membuat cluster.

Penginstalan memerlukan waktu sekitar 12 menit. Setelah selesai membuat cluster dan AWS Virtual Private Cloud Anda, Terraform akan mencetak informasi tentang cluster tersebut dan membuat file bernama var.sh. Anda dapat menggunakan nilai dalam file ini jika membuat node pool tambahan.

Untuk memverifikasi bahwa cluster berhasil dibuat, perhatikan cluster tersebut muncul di halaman Kubernetes Engine pada Google Cloud Console di project Google Cloud Anda.

Hubungkan ke cluster Anda

Untuk memverifikasi konektivitas ke cluster Anda dan mengambil detailnya, jalankan perintah berikut:

   gcloud container fleet memberships get-credentials CLUSTER_NAME
   kubectl get nodes

Ganti CLUSTER_NAME dengan nama cluster Anda. Anda dapat menemukan nama cluster di file output Terraform var.sh.

Outputnya mencakup daftar node dalam cluster Anda dan statusnya.

Hapus cluster dan AWS Virtual Private Cloud Anda

Sebelum menghapus cluster dan AWS Virtual Private Cloud, Anda harus menghapus semua hal berikut:

  • Semua load balancer AWS yang aktif di AWS Virtual Private Cloud
  • Semua kumpulan node tambahan di cluster Anda yang tidak dibuat dengan Terraform
  • Semua cluster tambahan di AWS Virtual Private Cloud yang tidak dibuat dengan Terraform

Untuk menghapus cluster dan AWS Virtual Private Cloud yang Anda buat dengan Terraform, jalankan perintah berikut:

terraform destroy

Terraform menguras workload dari node Anda, menghapus cluster dan kumpulan node utama Anda, serta menghapus AWS Virtual Private Cloud Anda.

Mengizinkan Cloud Logging dan Cloud Monitoring

Jika ingin mengaktifkan Cloud Logging dan Cloud Monitoring, Anda harus menambahkan kebijakan izin ke project Google Cloud setelah membuat cluster.

Tambahkan kebijakan izin dengan Google Cloud CLI:

gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:PROJECT_ID.svc.id.goog[gke-system/gke-telemetry-agent]" \
--role=roles/gkemulticloud.telemetryWriter

Ganti PROJECT_ID dengan project ID Anda.

Langkah berikutnya

Untuk mengetahui informasi lebih lanjut tentang Terraform GKE pada skrip AWS, lihat