Men-deploy aplikasi ke cluster GKE
Dalam panduan memulai ini, Anda akan men-deploy aplikasi dalam container server web sederhana ke cluster Google Kubernetes Engine (GKE). Anda akan mempelajari cara membuat cluster, dan cara men-deploy aplikasi ke cluster sehingga dapat diakses oleh pengguna.
Sebelum membaca halaman ini, pastikan Anda sudah memahami Kubernetes.
Sebelum memulai
Lakukan langkah-langkah berikut untuk mengaktifkan Kubernetes Engine API:- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry and Google Kubernetes Engine APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry and Google Kubernetes Engine APIs.
Meluncurkan Cloud Shell
Dalam tutorial ini, Anda akan menggunakan Cloud Shell, yang merupakan lingkungan shell untuk mengelola resource yang dihosting di Google Cloud.
Cloud Shell telah diinstal dengan alat command line
Google Cloud CLI
dan kubectl. Gcloud CLI menyediakan antarmuka command line utama untuk Google Cloud, dan kubectl
menyediakan antarmuka command line utama untuk menjalankan perintah terhadap cluster Kubernetes.
Meluncurkan Cloud Shell:
Buka Konsol Google Cloud.
Dari pojok kanan atas konsol, klik tombol Activate Cloud Shell:
Sesi Cloud Shell akan terbuka di dalam frame yang lebih rendah di konsol.
Anda menggunakan shell ini untuk menjalankan perintah gcloud
dan kubectl
.
Sebelum menjalankan perintah, tetapkan project default Anda di Google Cloud CLI menggunakan perintah berikut:
gcloud config set project PROJECT_ID
Ganti PROJECT_ID
dengan project ID Anda.
Membuat cluster GKE
Cluster terdiri dari setidaknya satu mesin bidang kontrol cluster dan beberapa mesin pekerja yang disebut node. Node adalah instance virtual machine (VM) Compute Engine yang menjalankan proses Kubernetes yang diperlukan untuk menjadikannya bagian dari cluster. Anda men-deploy aplikasi ke cluster, kemudian aplikasi akan berjalan di node.
Buat cluster Autopilot bernama hello-cluster
:
gcloud container clusters create-auto hello-cluster \
--location=us-central1
Mendapatkan kredensial autentikasi untuk cluster
Setelah membuat cluster, Anda perlu mendapatkan kredensial autentikasi agar dapat berinteraksi dengan cluster:
gcloud container clusters get-credentials hello-cluster \
--location us-central1
Perintah ini mengonfigurasi kubectl
untuk menggunakan cluster yang Anda buat.
Men-deploy aplikasi ke cluster
Setelah membuat cluster, Anda dapat men-deploy aplikasi dalam kontainer ke cluster tersebut. Untuk panduan memulai ini, Anda dapat men-deploy aplikasi web contoh kami, hello-app
.
GKE menggunakan objek Kubernetes untuk membuat dan mengelola resource cluster Anda. Kubernetes menyediakan objek Deployment untuk men-deploy aplikasi stateless seperti server web. Objek layanan menentukan aturan dan load balancing untuk mengakses aplikasi Anda dari internet.
Membuat Deployment
Untuk menjalankan hello-app
di cluster, Anda harus men-deploy aplikasi dengan
menjalankan perintah berikut:
kubectl create deployment hello-server \
--image=us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
Perintah Kubernetes ini, kubectl create deployment
, membuat Deployment yang bernama hello-server
. Pod Deployment akan menjalankan image container hello-app
.
Dalam perintah ini:
--image
menentukan image container yang akan di-deploy. Dalam hal ini, perintah tersebut akan mengambil image contoh dari repositori Artifact Registry,us-docker.pkg.dev/google-samples/containers/gke/hello-app
.:1.0
menunjukkan versi image tertentu yang akan ditarik. Jika Anda tidak menentukan versinya, image dengan taglatest
default akan digunakan.
Mengekspos Deployment
Setelah men-deploy aplikasi, Anda perlu mengeksposnya ke internet agar pengguna dapat mengaksesnya. Anda dapat mengekspos aplikasi Anda dengan membuat Service, yaitu resource Kubernetes yang mengekspos aplikasi Anda ke traffic eksternal.
Untuk mengekspos aplikasi Anda, jalankan perintah
kubectl expose
berikut:
kubectl expose deployment hello-server \
--type LoadBalancer \
--port 80 \
--target-port 8080
Meneruskan flag --type LoadBalancer
akan membuat load balancer Compute Engine untuk container Anda. Flag --port
menginisialisasi port
publik 80 ke internet dan flag --target-port
mengarahkan traffic ke
port 8080 aplikasi.
Load balancer ditagih per harga load balancer Compute Engine.
Memeriksa dan melihat aplikasi
Periksa Pod yang berjalan menggunakan
kubectl get pods
:kubectl get pods
Anda akan melihat satu Pod
hello-server
berjalan di cluster Anda.Periksa Layanan
hello-server
menggunakankubectl get service
:kubectl get service hello-server
Dari output perintah ini, salin alamat IP eksternal Layanan dari kolom
EXTERNAL-IP
.Lihat aplikasi dari browser web dengan menggunakan alamat IP eksternal dengan port yang diekspos:
http://EXTERNAL_IP
Anda baru saja berhasil men-deploy aplikasi web dalam container ke GKE.
Pembersihan
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.
Hapus Layanan aplikasi dengan menjalankan
kubectl delete
:kubectl delete service hello-server
Perintah ini menghapus load balancer Compute Engine yang Anda buat saat mengekspos Deployment.
Hapus cluster Anda dengan menjalankan
gcloud container clusters delete
:gcloud container clusters delete hello-cluster \ --location us-central1
Opsional: peninjauan kode hello-app
hello-app
adalah aplikasi server web sederhana yang terdiri dari dua file:
main.go
dan Dockerfile
.
hello-app
dikemas sebagai
image container
Docker. Image container disimpan di registry image Docker apa pun, seperti Artifact Registry. Kami menghosting hello-app
dalam repositori Artifact Registry di us-docker.pkg.dev/google-samples/containers/gke/hello-app
.
main.go
main.go
adalah implementasi server web yang ditulis dalam
bahasa pemrograman Go.
Server merespons permintaan HTTP apa pun dengan pesan "Hello, world!"
Dockerfile
Dockerfile
mendeskripsikan image yang Anda inginkan untuk dibuat oleh Docker, termasuk semua resource dan dependensinya, dan menentukan port jaringan yang harus ditampakkan oleh aplikasi. Untuk mengetahui informasi selengkapnya tentang cara kerja file ini, lihat referensi Dockerfile dalam dokumentasi Docker.
Langkah selanjutnya
- Pelajari lebih lanjut tentang membuat cluster.
- Pelajari Kubernetes lebih lanjut.
- Pelajari cara memaketkan, menghosting, dan men-deploy aplikasi server web sederhana.
- Deploy aplikasi Kubernetes dengan Cloud Code untuk VS Code atau Cloud Code untuk IntelliJ.
- Pelajari cara Membuat platform ulang aplikasi Linux ke container.
Coba sendiri
Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa GKE dalam skenario dunia nyata. Pelanggan baru mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
Coba GKE gratis