Menyediakan resource GKE dengan Terraform

HashiCorp Terraform adalah alat infrastruktur sebagai kode (IaC) yang memungkinkan Anda menyediakan dan mengelola infrastruktur cloud. Terraform menyediakan plugin yang disebut penyedia yang memungkinkan Anda berinteraksi dengan penyedia cloud dan API lainnya. Anda dapat menggunakan penyedia Terraform untuk Google Cloud guna menyediakan dan mengelola Google Cloud resource, termasuk GKE.

Halaman ini memperkenalkan cara menggunakan Terraform dengan GKE, termasuk pengantar cara kerja Terraform dan beberapa resource untuk membantu Anda mulai menggunakan Terraform dengan Google Cloud. Anda juga akan menemukan link ke dokumen referensi Terraform untuk GKE, contoh kode, dan panduan untuk menggunakan Terraform dalam menyediakan resource GKE.

Untuk mengetahui petunjuk cara mulai menggunakan Terraform untuk Google Cloud, lihat Menginstal dan mengonfigurasi Terraform atau Mulai cepat Terraform untuk Google Cloud .

Cara kerja Terraform

Terraform memiliki sintaksis deklaratif dan berorientasi konfigurasi yang dapat Anda gunakan untuk mendeskripsikan infrastruktur yang ingin Anda sediakan di Google Cloud project Anda. Setelah menulis konfigurasi ini di satu atau beberapa file konfigurasi Terraform, Anda dapat menggunakan Terraform CLI untuk menerapkan konfigurasi ini ke resource GKE Anda.

Langkah-langkah berikut menjelaskan cara kerja Terraform:

  1. Anda menjelaskan infrastruktur yang ingin Anda sediakan dalam file konfigurasi Terraform. Anda tidak perlu menulis kode yang menjelaskan cara menyediakan infrastruktur. Terraform menyediakan infrastruktur untuk Anda.
  2. Anda menjalankan perintah terraform plan, yang mengevaluasi konfigurasi dan membuat rencana eksekusi. Anda dapat meninjau rencana dan melakukan perubahan sesuai kebutuhan.
  3. Anda menjalankan perintah terraform apply, yang melakukan tindakan berikut:

    1. Layanan ini menyediakan infrastruktur Anda berdasarkan rencana eksekusi dengan memanggil GKE API yang sesuai di latar belakang.
    2. File ini membuat file status Terraform, yang merupakan file JSON yang memetakan resource dalam file konfigurasi Anda ke resource dalam infrastruktur dunia nyata. Terraform menggunakan file ini untuk mencatat status terbaru infrastruktur Anda, dan untuk menentukan kapan harus membuat, mengupdate, dan menghancurkan resource.
    3. Saat Anda menjalankan terraform apply, Terraform menggunakan pemetaan dalam file status untuk membandingkan infrastruktur yang ada dengan kode, dan melakukan update sesuai kebutuhan:

      • Jika objek resource ditentukan dalam file konfigurasi, tetapi tidak ada dalam file status, Terraform akan membuatnya.
      • Jika objek resource ada dalam file status, tetapi memiliki konfigurasi yang berbeda dari file konfigurasi Anda, Terraform akan memperbarui resource agar sesuai dengan file konfigurasi Anda.
      • Jika objek resource dalam file status cocok dengan file konfigurasi Anda, Terraform tidak akan mengubah resource.

Resource Terraform untuk GKE

Resource adalah elemen dasar dalam bahasa Terraform. Setiap blok resource menjelaskan satu atau beberapa objek infrastruktur, seperti jaringan virtual atau instance komputasi.

Tabel berikut mencantumkan resource Terraform yang tersedia untuk GKE:

Produk atau layanan GKE Resource Terraform
Google Kubernetes Engine google_container_cluster
google_container_node_pool
google_gke_hub_feature
google_gke_hub_feature_iam
google_gke_hub_feature_membership
google_gke_hub_fleet
google_gke_hub_membership
google_gke_hub_membership_binding
google_gke_hub_membership_iam
google_gke_hub_membership_rbac_role_binding
google_gke_hub_namespace
google_gke_hub_namespace
google_gke_hub_scope
google_gke_hub_scope_iam
google_gke_hub_scope_rbac_role_binding
Pencadangan untuk GKE google_gke_backup_backup_channel
google_gke_backup_backup_plan
google_gke_backup_backup_plan_iam
google_gke_backup_restore_channel
google_gke_backup_restore_plan
google_gke_backup_restore_plan_iam

Panduan berbasis Terraform untuk GKE

Tabel berikut mencantumkan panduan cara kerja dan tutorial berbasis Terraform untuk GKE:

Panduan Detail
Membuat cluster GKE dan men-deploy beban kerja menggunakan Terraform Menjelaskan cara membuat cluster Autopilot Google Kubernetes Engine (GKE) dan men-deploy workload menggunakan Terraform.
Membuat cluster Autopilot Menjelaskan cara membuat cluster GKE di Autopilot.
Membuat cluster zona Menjelaskan cara membuat cluster zona Standar dengan fitur default yang diaktifkan di GKE.
Membuat cluster regional Menjelaskan cara membuat cluster regional Standard di GKE.
Membuat cluster multi-tenant menggunakan Terraform Menjelaskan cara membuat cluster multi-tenant dan men-deploy workload menggunakan Terraform.
Menambahkan dan mengelola node pool Menjelaskan cara menambahkan dan menjalankan operasi pada node pool yang menjalankan cluster GKE Standard Anda.
Membuat cluster dan node pool dengan node Arm Menjelaskan cara membuat cluster GKE Standard atau node pool dengan node Arm, sehingga Anda dapat menjalankan workload Arm di GKE.
Menggunakan resource zona yang dicadangkan Menjelaskan cara menggunakan resource Compute Engine yang dipesan di GKE.
Menentukan image node Menjelaskan cara menentukan image node untuk node di cluster Standard GKE.
Membuat cluster yang menggunakan node pool Windows Server Menjelaskan cara membuat cluster GKE dengan node pool yang menjalankan Microsoft Windows Server.
Membuat dan mengelola label cluster dan node pool Menjelaskan cara membuat cluster yang memiliki label terlampir.
Mengelola resource GKE menggunakan Tag Menjelaskan cara menggunakan Tag untuk mengelola cluster GKE Anda.
Menyesuaikan konfigurasi sistem node Menjelaskan cara menyesuaikan konfigurasi sistem node GKE Anda dengan menggunakan file konfigurasi sistem node.
Membuat cluster VPC native Menjelaskan cara mengonfigurasi cluster VPC native di GKE.
Membuat load balancer internal Menjelaskan cara membuat Load Balancer Jaringan passthrough internal atau load balancer internal di GKE.
Mengonfigurasi jaringan untuk cluster produksi dasar Menjelaskan cara men-deploy aplikasi web ke cluster GKE dan mengeksposnya dengan load balancer HTTPS.
Mengurutkan peluncuran upgrade cluster Menjelaskan cara mengelola upgrade cluster GKE menggunakan urutan peluncuran.
Men-deploy workload TPU di GKE Standard Menjelaskan cara meminta dan men-deploy pelatihan model, penyesuaian, dan inferensi kecerdasan buatan (AI) dan machine learning (ML) berskala besar yang menggunakan akselerator Cloud TPU (TPU) di cluster Standard GKE.
Menjalankan GPU di node pool GKE Standard Menjelaskan cara menjalankan dan mengoptimalkan workload yang intensif secara komputasi, seperti workload kecerdasan buatan (AI), dengan melampirkan dan menggunakan GPU NVIDIA di node cluster GKE Standard.
Menjalankan GPU multi-instance Menjelaskan cara meningkatkan pemanfaatan dan mengurangi biaya dengan menjalankan GPU multi-instance.
Aktifkan operator Ray di GKE Menjelaskan cara mengaktifkan operator Ray untuk GKE.
Menggunakan boot disk sekunder untuk melakukan pramuat data atau image container Menjelaskan cara meningkatkan latensi startup workload dengan menggunakan disk boot sekunder.
Men-deploy database PostgreSQL yang sangat tersedia di GKE Menjelaskan cara men-deploy topologi PostgreSQL yang sangat tersedia di GKE. PostgreSQL adalah database relasional objek open source yang dikenal karena keandalan dan integritas data.
Mengumpulkan dan melihat metrik bidang kontrol Menjelaskan cara mengonfigurasi cluster GKE untuk mengirim metrik yang dikeluarkan oleh server Kubernetes API, Scheduler, dan Controller Manager ke Cloud Monitoring menggunakan Google Cloud Managed Service for Prometheus.
Mengumpulkan dan melihat metrik cAdvisor/Kubelet Menjelaskan cara mengonfigurasi cluster Google Kubernetes Engine (GKE) untuk mengirimkan serangkaian metrik cAdvisor/Kubelet yang telah dikurasi ke Cloud Monitoring dengan menggunakan Google Cloud Managed Service for Prometheus.
Menyesuaikan throughput log Menjelaskan throughput log default dan cara meningkatkan throughput.
Men-deploy Managed OpenTelemetry untuk GKE Menjelaskan cara menyiapkan Managed OpenTelemetry untuk GKE guna mengirim trace, metrik, dan log OTLP ke Google Cloud Observability.
Mengumpulkan dan melihat kube-state-metrics Menjelaskan cara mengonfigurasi cluster GKE untuk mengirim kube-state-metrics ke Cloud Monitoring menggunakan Google Cloud Managed Service for Prometheus.
Instal Pengontrol Kebijakan Menjelaskan cara menginstal Pengontrol Kebijakan menggunakan Terraform.
Mengaktifkan Pencadangan untuk GKE bagi cluster Menjelaskan cara mengaktifkan Pencadangan untuk GKE bagi cluster.
Mengubah resource selama pemulihan Menjelaskan cara memodifikasi resource Kubernetes selama proses pemulihan dengan menggunakan aturan transformasi.
Mengaktifkan mode permisif pada rencana pencadangan Menjelaskan cara mengaktifkan mode permisif pada paket pencadangan.
Aktifkan Pencadangan untuk GKE API Menjelaskan cara mengaktifkan Pencadangan untuk GKE.
Merencanakan serangkaian cadangan Menjelaskan cara membuat rencana pencadangan Pencadangan untuk GKE, yang digunakan untuk mencadangkan workload Anda di GKE.
Mendaftarkan cluster di Google Cloud ke fleet Anda Menjelaskan cara mendaftarkan cluster GKE di Google Cloud ke fleet Anda menggunakan Terraform.
Menginstal Config Sync sebagai default fleet Menjelaskan cara mengonfigurasi Config Sync sebagai default tingkat armada untuk semua cluster baru.
Mengelola resource tim di seluruh perangkat Anda Menjelaskan cara menggunakan Config Sync dan Terraform untuk membuat resource dengan cakupan tim secara dinamis di seluruh kumpulan cluster.

Modul dan blueprint Terraform untuk GKE

Modul dan blueprint membantu Anda mengotomatiskan penyediaan dan pengelolaan Google Cloud resource dalam skala besar. Modul adalah kumpulan file konfigurasi Terraform yang dapat digunakan kembali dan membuat abstraksi logis resource Terraform. Blueprint adalah paket modul yang dapat di-deploy dan dapat digunakan kembali, serta kebijakan yang menerapkan dan mendokumentasikan solusi tertentu.

Tabel berikut mencantumkan modul dan blueprint yang terkait dengan GKE:

Modul atau blueprint Detail
terraform-google-kubernetes-engine Mengonfigurasi cluster GKE yang tidak dapat berubah.
terraform-google-gke-gitlab Menginstal GitLab di GKE.

Langkah berikutnya