Halaman ini menjelaskan cara men-deploy aplikasi ke Kubernetes menggunakan Cloud Build.
Cloud Build menyediakan gke-deploy builder
yang memungkinkan Anda men-deploy aplikasi dalam container ke
cluster GKE.
gke-deploy adalah wrapper di sekitar kubectl, antarmuka command line untuk Kubernetes. Layanan ini menerapkan praktik terbaik Google untuk men-deploy aplikasi ke Kubernetes dengan:
Memperbarui file resource Kubernetes aplikasi untuk menggunakan ringkasan image container, bukan tag.
Menambahkan label yang direkomendasikan ke file resource Kubernetes.
Mengambil kredensial untuk cluster GKE tempat Anda men-deploy image.
Menunggu file resource Kubernetes yang dikirimkan siap.
Jika Anda ingin men-deploy aplikasi menggunakan kubectl secara langsung dan tidak memerlukan
fungsi tambahan, Cloud Build juga menyediakan builder kubectl yang dapat Anda gunakan untuk men-deploy aplikasi ke
cluster GKE.
Sebelum memulai
Buat cluster GKE jika Anda belum memilikinya.
Siapkan aplikasi dalam container Anda dalam bentuk kode sumber dan
Dockerfile. Kode sumber Anda harus disimpan di repositori, seperti Cloud Source Repositories, GitHub, atau Bitbucket.Anda memerlukan setidaknya satu file resource Kubernetes yang menjelaskan resource Kubernetes yang digunakan untuk menjalankan aplikasi Anda. Jika Anda tidak memiliki file resource Kubernetes, gunakan langkah-langkah berikut untuk membuatnya bagi aplikasi Anda:
- Buka halaman cluster Kubernetes Engine di Google Cloud konsol.
- Di halaman cluster Kubernetes Engine, klik Deploy.
- Pilih container Anda, lalu klik Continue. Anda akan melihat bagian Konfigurasi.
- Di bagian YAML Konfigurasi, klik Lihat YAML untuk mendapatkan contoh file resource Kubernetes.
Izin IAM yang diperlukan
Tambahkan peran Developer Google Kubernetes Engine ke akun Anda:
-
Di Google Cloud konsol, buka halaman settings Cloud Build Permissions:
Tetapkan status peran Kubernetes Engine Developer ke Enabled.
Men-deploy image container yang telah dibuat sebelumnya
Untuk men-deploy versi tertentu dari aplikasi Anda dengan gke-deploy:
Pastikan file resource Kubernetes Anda merujuk ke tag atau ringkasan image container yang benar.
Tambahkan langkah
gke-deploydi file konfigurasi build Anda:YAML
steps: ... # deploy container image to GKE - name: "gcr.io/cloud-builders/gke-deploy" args: - run - --filename=KUBERNETES_RESOURCE_FILE - --location=CLUSTER_LOCATION - --cluster=CLUSTERJSON
{ "steps": [ { "name": "gcr.io/cloud-builders/gke-deploy", "args": [ "run", "--filename=KUBERNETES_RESOURCE_FILE", "--location=CLUSTER_LOCATION", "--cluster=CLUSTER" ] } ] }Dengan:
- KUBERNETES_RESOURCE_FILE adalah jalur file resource Kubernetes Anda atau jalur direktori yang berisi file resource Kubernetes Anda.
- CLUSTER_LOCATION adalah region cluster.
- CLUSTER adalah nama cluster GKE tempat aplikasi akan di-deploy.
Untuk mengetahui informasi selengkapnya tentang flag yang tersedia, lihat
gke-deploy runflag.Mulai build Anda:
gcloud builds submit --region=LOCATION --project=PROJECT --config BUILD_CONFIGDengan:
- LOCATION adalah salah satu lokasi build yang didukung.
- PROJECT adalah ID untuk project Anda.
- BUILD_CONFIG adalah nama file konfigurasi build Anda.
Membangun dan men-deploy image container baru
Untuk membangun image container baru dan men-deploy image container baru:
Perbarui file resource Kubernetes Anda dengan image container baru menggunakan atribut
--image:YAML
steps: # build the container image - name: "gcr.io/cloud-builders/docker" args: ["build", "-t", "LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE_NAME:TAG", "."] # push container image - name: "gcr.io/cloud-builders/docker" args: ["push", "LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE_NAME:TAG"] # deploy container image to GKE - name: "gcr.io/cloud-builders/gke-deploy" args: - run - --filename=KUBERNETES_RESOURCE_FILE - --image=LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE_NAME:TAG - --location=CLUSTER_LOCATION - --cluster=CLUSTERJSON
{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE_NAME:TAG", "." ] }, { "name": "gcr.io/cloud-builders/docker", "args": [ "push", "LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE_NAME:TAG" ] }, { "name": "gcr.io/cloud-builders/gke-deploy", "args": [ "run", "--filename=KUBERNETES_RESOURCE_FILE", "--image=LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE_NAME:TAG", "--location=CLUSTER_LOCATION", "--cluster=CLUSTER" ] } ] }Dengan:
- LOCATION adalah salah satu lokasi build yang didukung.
- PROJECT adalah ID untuk project Anda.
- IMAGE_NAME adalah nama yang Anda inginkan untuk container image, biasanya nama aplikasi.
- TAG adalah tag image container.
- Jika Anda membangun image container baru dengan setiap commit, sebaiknya gunakan SHA singkat commit sebagai tag. Cloud Build makes this
available as a default substitution,
$SHORT_SHA.
- Jika Anda membangun image container baru dengan setiap commit, sebaiknya gunakan SHA singkat commit sebagai tag. Cloud Build makes this
available as a default substitution,
- KUBERNETES_RESOURCE_FILE adalah jalur file resource Kubernetes Anda atau jalur direktori yang berisi file resource Kubernetes Anda.
- CLUSTER adalah nama cluster GKE tempat aplikasi akan di-deploy.
- CLUSTER_LOCATION adalah region tempat cluster akan di-deploy.
Mulai build Anda:
gcloud builds submit --region=LOCATION --project=PROJECT --config BUILD_CONFIGDengan:
- LOCATION adalah salah satu region build yang didukung.
- PROJECT adalah ID untuk project Anda.
- BUILD_CONFIG adalah nama file konfigurasi build Anda.
Mengotomatiskan deployment
Anda dapat mengotomatiskan deployment aplikasi ke GKE dengan membuat pemicu di Cloud Build. Anda dapat mengonfigurasi pemicu untuk mem-build dan men-deploy image setiap kali Anda mengirimkan perubahan ke kode Anda.
Untuk membuat pemicu build:
Buka halaman Triggers di Google Cloud konsol:
Pilih project Anda dari menu drop-down pemilih project di bagian atas halaman.
Klik Open.
Klik Create trigger.
Di halaman Create trigger, masukkan setelan berikut:
Masukkan nama untuk pemicu Anda.
Pilih peristiwa repositori untuk memulai pemicu Anda.
Pilih repositori yang berisi kode sumber dan file konfigurasi build Anda.
Tentukan ekspresi reguler untuk nama cabang atau tag yang akan memulai pemicu Anda.
Pilih Configuration untuk pemicu Anda.
Jika Anda memilih file konfigurasi Cloud Build, Anda dapat menentukan Substitution variables dengan memberikan nama variabel dan nilai yang ingin Anda kaitkan dengan variabel tersebut. Dalam contoh berikut, variabel penggantian yang ditentukan pengguna
_CLOUDSDK_CONTAINER_CLUSTERmenentukan cluster yang akan di-deploy, dan variabel penggantian yang ditentukan pengguna_CLOUDSDK_COMPUTE_ZONEmenentukan lokasinya. Jika Anda ingin men-deploy ke cluster lain, Anda dapat menggunakan konfigurasi build yang sama dan hanya perlu mengubah nilai variabel penggantian:YAML
steps: ... # deploy container image to GKE - name: "gcr.io/cloud-builders/gke-deploy" args: - run - --filename=KUBERNETES_RESOURCE_FILE - --image=LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE_NAME:TAG - --location=${_CLOUDSDK_COMPUTE_ZONE} - --cluster=${_CLOUDSDK_CONTAINER_CLUSTER}JSON
{ "steps": [ { "name": "gcr.io/cloud-builders/gke-deploy", "args": [ "run", "--filename=KUBERNETES_RESOURCE_FILE", "--image=LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE_NAME:TAG", "--location=${_CLOUDSDK_COMPUTE_ZONE}", "--cluster=${_CLOUDSDK_CONTAINER_CLUSTER}" ] } ] }Dengan:
- KUBERNETES_RESOURCE_FILE adalah jalur file konfigurasi Kubernetes Anda atau jalur direktori yang berisi file resource Kubernetes Anda.
- PROJECT adalah ID untuk project Anda.
- IMAGE_NAME adalah nama yang Anda inginkan untuk image container Anda, biasanya nama aplikasi.
- TAG adalah tag image container.
Untuk mempelajari lebih lanjut cara menentukan penggantian untuk file konfigurasi build, lihat Menggunakan penggantian yang ditentukan pengguna.
Klik Create untuk menyimpan pemicu build Anda.
Saat Anda mengirimkan kode ke repositori, Cloud Build akan otomatis memicu build. Untuk mempelajari lebih lanjut pemicu build, lihat Membuat dan mengelola pemicu build.
Langkah berikutnya
- Pelajari cara mengonfigurasi deployment otomatis untuk workload Anda di GKE.
- Pelajari cara membuat pipeline CI/CD bergaya GitOps yang di-deploy ke GKE dengan Cloud Build.
- Pelajari opsi
gke-deploytambahan. - Pelajari cara melakukan deployment biru-hijau di Compute Engine.
- Pelajari builder Cloud tambahan.
- Pelajari cara memecahkan masalah error build.