Deploy infrastructure with Terraform

Periksa progres saya

/ 100

Lab ini mungkin menggabungkan alat AI untuk mendukung pembelajaran Anda.

GSP233

Lab mandiri Google Cloud

Ringkasan

Di Terraform, Provider adalah abstraksi logis API upstream. Lab ini akan memandu Anda menyiapkan cluster Kubernetes dan men-deploy service NGINX bertipe Load Balancer di dalamnya.

Tujuan

Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:

  • Men-deploy cluster Kubernetes beserta sebuah service menggunakan Terraform.

Prasyarat

Untuk mengikuti lab ini, Anda sebaiknya memiliki:

  • Pemahaman tentang Service Kubernetes
  • Pemahaman tentang CLI kubectl.

Penyiapan dan persyaratan

Sebelum mengklik tombol Start Lab

Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.

Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.

Untuk menyelesaikan lab ini, Anda memerlukan:

  • Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
  • Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.

Cara memulai lab dan login ke Google Cloud Console

  1. Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran. Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:

    • Tombol Open Google Cloud console
    • Waktu tersisa
    • Kredensial sementara yang harus Anda gunakan untuk lab ini
    • Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
  2. Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).

    Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.

    Tips: Atur tab di jendela terpisah secara berdampingan.

    Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
  3. Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.

    {{{user_0.username | "Username"}}}

    Anda juga dapat menemukan Username di panel Lab Details.

  4. Klik Next.

  5. Salin Password di bawah dan tempel ke dialog Welcome.

    {{{user_0.password | "Password"}}}

    Anda juga dapat menemukan Password di panel Lab Details.

  6. Klik Next.

    Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda. Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
  7. Klik halaman berikutnya:

    • Setujui persyaratan dan ketentuan.
    • Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
    • Jangan mendaftar uji coba gratis.

Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.

Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search. Ikon Navigation menu dan kolom Search

Mengaktifkan Cloud Shell

Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.

  1. Klik Activate Cloud Shell Ikon Activate Cloud Shell di bagian atas Konsol Google Cloud.

  2. Klik jendela berikut:

    • Lanjutkan melalui jendela informasi Cloud Shell.
    • Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.

Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID, . Output berisi baris yang mendeklarasikan Project_ID untuk sesi ini:

Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "PROJECT_ID"}}}

gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.

  1. (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
  1. Klik Authorize.

Output:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Untuk menetapkan akun aktif, jalankan: $ gcloud config set account `ACCOUNT`
  1. (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project

Output:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.

Service Kubernetes

Service adalah sekumpulan pod yang berjalan di cluster. Service bersifat "ringan" sehingga Anda dapat memiliki banyak service dalam satu cluster. Service Kubernetes dapat secara efisien mendukung arsitektur microservice.

Service menyediakan fitur penting yang distandarkan di seluruh cluster, seperti load balancing, penemuan layanan antaraplikasi, serta dukungan untuk deployment aplikasi tanpa waktu non-operasional.

Tiap service memiliki kueri label pod yang menentukan pod yang akan memproses data untuk service tersebut. Kueri label ini umumnya cocok dengan pod yang dibuat oleh satu atau beberapa pengontrol replikasi. Skenario pemilihan rute yang canggih dapat dilakukan dengan memperbarui kueri label service melalui Kubernetes API menggunakan software deployment.

Mengapa Terraform?

Meskipun Anda dapat menggunakan kubectl atau alat berbasis CLI serupa yang terhubung ke panggilan API untuk mengelola semua resource Kubernetes yang didefinisikan dalam file YAML, orkestrasi dengan Terraform menawarkan beberapa keunggulan:

  • Satu bahasa - Anda dapat menggunakan bahasa konfigurasi yang sama untuk menyediakan infrastruktur Kubernetes dan men-deploy aplikasi ke dalamnya.
  • Deteksi penyimpangan - terraform plan selalu menampilkan perbedaan antara kondisi aktual pada suatu waktu dan konfigurasi yang ingin Anda terapkan.
  • Pengelolaan siklus proses penuh - Terraform tidak hanya membuat resource di awal, tetapi juga menawarkan satu perintah untuk membuat, mengupdate, dan menghapus resource yang dilacak tanpa perlu memeriksa API untuk mengidentifikasinya.
  • Masukan sinkron - Meskipun perilaku asinkron sering kali berguna, terkadang hal ini bisa menjadi tidak efektif karena pengguna harus mengidentifikasi hasil operasi (kegagalan atau detail resource yang dibuat). Misalnya, Anda tidak akan mendapatkan IP/nama host dari load balancer sampai proses penyediaannya selesai, sehingga Anda tidak akan dapat membuat Data DNS yang mengarah ke sana.
  • Graf relasi - Terraform memahami hubungan antar-resource yang dapat membantu dalam penjadwalan. Misalnya, Terraform tidak akan mencoba membuat service di cluster Kubernetes hingga cluster tersebut tersedia.

Tugas 1. Meng-clone kode contoh

  1. Di Cloud Shell, mulailah dengan meng-clone kode contoh menggunakan perintah berikut:
gcloud storage cp -r gs://spls/gsp233/* .
  1. Buka direktori tf-gke-k8s-service-lb menggunakan perintah berikut:
cd tf-gke-k8s-service-lb

Tugas 2. Memahami kode

  1. Jalankan perintah berikut untuk meninjau isi file main.tf:
cat main.tf

Contoh output:

... variable "region" { type = string description = "Region untuk resource." } variable "location" { type = string description = "Lokasi merepresentasikan region/zona untuk resource." } variable "network_name" { default = "tf-gke-k8s" } provider "google" { region = var.region } resource "google_compute_network" "default" { name = var.network_name auto_create_subnetworks = false } resource "google_compute_subnetwork" "default" { name = var.network_name ip_cidr_range = "10.127.0.0/20" network = google_compute_network.default.self_link region = var.region private_ip_google_access = true } ...
  • Variabel didefinisikan untuk region, zone, dan network_name. Variabel ini akan digunakan untuk membuat cluster Kubernetes.
  • Dengan provider Google Cloud, kita dapat membuat resource dalam project ini.
  • Beberapa resource didefinisikan untuk membuat jaringan dan cluster yang sesuai.
  • Di bagian akhir, terdapat beberapa output yang akan Anda lihat setelah menjalankan terraform apply.
  1. Jalankan perintah berikut untuk meninjau isi file k8s.tf:
cat k8s.tf

Contoh output:

provider "kubernetes" { version = "~> 1.10.0" host = google_container_cluster.default.endpoint token = data.google_client_config.current.access_token client_certificate = base64decode( google_container_cluster.default.master_auth[0].client_certificate, ) client_key = base64decode(google_container_cluster.default.master_auth[0].client_key) cluster_ca_certificate = base64decode( google_container_cluster.default.master_auth[0].cluster_ca_certificate, ) } resource "kubernetes_namespace" "staging" { metadata { name = "staging" } } resource "google_compute_address" "default" { name = var.network_name region = var.region } resource "kubernetes_service" "nginx" { metadata { namespace = kubernetes_namespace.staging.metadata[0].name name = "nginx" } spec { selector = { run = "nginx" } session_affinity = "ClientIP" port { protocol = "TCP" port = 80 target_port = 80 } type = "LoadBalancer" load_balancer_ip = google_compute_address.default.address } } resource "kubernetes_replication_controller" "nginx" { metadata { name = "nginx" namespace = kubernetes_namespace.staging.metadata[0].name labels = { run = "nginx" } } spec { selector = { run = "nginx" } template { container { image = "nginx:latest" name = "nginx" resources { limits { cpu = "0.5" memory = "512Mi" } requests { cpu = "250m" memory = "50Mi" } } } } } } output "load-balancer-ip" { value = google_compute_address.default.address }
  • Skrip ini mengonfigurasi provider Kubernetes dengan Terraform dan membuat service, namespace, serta resource replication_controller.
  • Skrip menampilkan IP service nginx sebagai output.

Tugas 3. Melakukan inisialisasi dan menginstal dependensi

Perintah terraform init digunakan untuk melakukan inisialisasi direktori kerja yang berisi file konfigurasi Terraform.

Perintah ini menjalankan beberapa langkah inisialisasi untuk menyiapkan direktori kerja agar siap digunakan, dan aman dijalankan beberapa kali untuk memperbarui direktori kerja sesuai perubahan konfigurasi:

  1. Jalankan perintah terraform init:
terraform init

Contoh output:

... * provider.google: version = "~> 3.8.0" * provider.kubernetes: version = "~> 1.10.0" Terraform berhasil diinisialisasi! Anda sekarang dapat bekerja dengan Terraform. Coba jalankan `terraform plan` untuk melihat perubahan apa pun yang diperlukan untuk infrastruktur Anda. Semua perintah Terraform seharusnya berfungsi sekarang. Jika Anda mengatur atau mengubah modul atau konfigurasi backend untuk Terraform, jalankan kembali perintah ini untuk menginisialisasi ulang direktori kerja. Jika Anda lupa, perintah lain akan mendeteksinya dan mengingatkan Anda untuk melakukannya, jika perlu.
  1. Jalankan perintah terraform apply, yang digunakan untuk menerapkan perubahan yang diperlukan untuk mencapai status konfigurasi yang diinginkan:
terraform apply -var="region={{{ project_0.default_region | "Region to be allocated" }}}" -var="location={{{ project_0.default_zone | "Zone to be allocated" }}}"
  1. Tinjau tindakan yang akan dilakukan Terraform dan periksa resource yang akan dibuat.

  2. Jika sudah siap, ketik yes untuk memulai tindakan Terraform.

Setelah selesai, Anda akan melihat output seperti berikut.

Contoh output:

Penerapan berhasil! Resource: 7 ditambahkan, 0 diubah, 0 dihancurkan. Output: cluster_name = tf-gke-k8s cluster_region = "{{{project_0.default_region|REGION}}}" cluster_zone = "{{{project_0.default_region|ZONE}}}" load-balancer-ip = 35.233.177.223 network = https://www.googleapis.com/compute/beta/projects/qwiklabs-gcp-5438ad3a5e852e4a/global/networks/tf-gke-k8s subnetwork_name = tf-gke-k8s

Memverifikasi resource yang dibuat oleh Terraform

  1. Di konsol, buka Navigation menu > Kubernetes Engine.
  2. Klik cluster tf-gke-k8s dan tinjau konfigurasinya.
  3. Di panel kiri, klik Gateways, Services & Ingress lalu periksa status service nginx.
  4. Klik alamat IP Endpoints untuk membuka halaman Welcome to nginx! di tab browser baru.

Halaman Welcome to nginx!

Klik Periksa progres saya untuk memverifikasi tugas yang telah dijalankan. Jika Anda berhasil men-deploy infrastruktur dengan Terraform, Anda akan melihat skor penilaian.

Men-deploy infrastruktur dengan Terraform

Selamat!

Di lab ini, Anda telah menggunakan Terraform untuk melakukan inisialisasi, merencanakan, dan men-deploy cluster Kubernetes beserta sebuah service.

Langkah berikutnya/Pelajari lebih lanjut

Pelajari pengalaman pengguna lain dalam menggunakan Terraform di Komunitas.

Sertifikasi dan pelatihan Google Cloud

...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.

Manual Terakhir Diperbarui pada 10 Maret 2026

Lab Terakhir Diuji pada 10 Maret 2026

Hak cipta 2026 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.

Sebelum memulai

  1. Lab membuat project dan resource Google Cloud untuk jangka waktu tertentu
  2. Lab memiliki batas waktu dan tidak memiliki fitur jeda. Jika lab diakhiri, Anda harus memulainya lagi dari awal.
  3. Di kiri atas layar, klik Start lab untuk memulai

Gunakan penjelajahan rahasia

  1. Salin Nama Pengguna dan Sandi yang diberikan untuk lab tersebut
  2. Klik Open console dalam mode pribadi

Login ke Konsol

  1. Login menggunakan kredensial lab Anda. Menggunakan kredensial lain mungkin menyebabkan error atau dikenai biaya.
  2. Setujui persyaratan, dan lewati halaman resource pemulihan
  3. Jangan klik End lab kecuali jika Anda sudah menyelesaikan lab atau ingin mengulanginya, karena tindakan ini akan menghapus pekerjaan Anda dan menghapus project

Konten ini tidak tersedia untuk saat ini

Kami akan memberi tahu Anda melalui email saat konten tersedia

Bagus!

Kami akan menghubungi Anda melalui email saat konten tersedia

Satu lab dalam satu waktu

Konfirmasi untuk mengakhiri semua lab yang ada dan memulai lab ini

Gunakan penjelajahan rahasia untuk menjalankan lab

Menggunakan jendela Samaran atau browser pribadi adalah cara terbaik untuk menjalankan lab ini. Langkah ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa, yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.

Selesaikan langkah cepat ini untuk memulai lab Anda.