Dokumen ini menjelaskan cara men-deploy aplikasi Anda ke cluster Google Kubernetes Engine.
Dengan Cloud Deploy, Anda dapat men-deploy workload berbasis container ke cluster Google Kubernetes Engine. Semua fitur Cloud Deploy didukung saat Anda melakukan deployment ke target GKE.
Sebelum memulai
Memiliki satu atau beberapa cluster GKE yang akan di-deploy.
Jika tidak memiliki cluster GKE yang akan di-deploy, Anda dapat membuatnya.
Pastikan akun layanan eksekusi Anda memiliki peran dan izin yang diperlukan.
Dalam file skaffold.yaml
ini, stanza deploy
mencakup kubectl
, yang
menunjukkan bahwa Skaffold sedang melakukan rendering untuk, dan men-deploy ke, Kubernetes
(GKE). Dan manifes yang Anda gunakan untuk aplikasi ini
akan tercantum di bawah ini.
Membuat konfigurasi target
Setiap target dapat dikonfigurasi dalam YAML pipeline pengiriman Anda, atau dapat dalam file yang terpisah. Selain itu, Anda dapat mengonfigurasi lebih dari satu target dalam file yang sama,
tetapi keduanya harus berada dalam stanza kind: Target
yang berbeda.
Pada definisi target, buat stanza gke
untuk mengarah ke
cluster GKE:
Sintaksis untuk menentukan cluster GKE adalah sebagai berikut:
gke:
cluster: projects/[project_name]/locations/[location]/clusters/[cluster_name]
ID resource GKE ini menggunakan elemen berikut:
[
project_name
] adalah nama project Google Cloud tempat Anda menjalankan cluster ini.Cluster yang menjadi tujuan deployment tidak harus berada dalam project yang sama dengan pipeline pengiriman Anda.
[
location
] adalah region tempat cluster dibuat.[
cluster_name
] adalah nama yang diberikan ke cluster saat dibuat.Nama ini dapat ditemukan dalam daftar cluster untuk project Anda, di konsol Google Cloud.
Berikut adalah contoh konfigurasi target, yang mengarah ke cluster GKE:
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: dev
description: development cluster
gke:
cluster: projects/my-app/locations/us-central1/clusters/my-app-dev-cluster
Membuat konfigurasi Skaffold
Bagian ini menyediakan dan menjelaskan contoh konfigurasi Skaffold sederhana yang dapat digunakan saat melakukan deployment ke cluster GKE.
Berikut adalah contoh file skaffold.yaml
untuk deployment ke cluster GKE:
apiVersion: skaffold/v4beta7
kind: Config
metadata:
name: gke-application
manifests:
rawYaml:
- deployment.yaml
deploy:
kubectl: {}
Penggunaan Skaffold dengan Cloud Deploy menjelaskan secara lebih mendetail cara menggunakan Skaffold dengan pipeline pengiriman Anda.
Menyiapkan manifes Kubernetes
Untuk men-deploy aplikasi ke GKE, Anda perlu menyediakan satu atau beberapa manifes Kubernetes kepada Cloud Deploy, yang dirender, lalu diterapkan ke cluster target atau cluster untuk men-deploy aplikasi Anda.
Jika Anda tidak memiliki manifes tersebut, buat manifes sebelum mencoba men-deploy menggunakan pipeline pengiriman Cloud Deploy.
Anda dapat menggunakan Kustomize atau Helm untuk membantu membuat manifes. Anda juga dapat menggunakan Kustomize atau Helm jika manifes diberi template dan perlu dirender.
Menggabungkan semuanya
Setelah memiliki manifes Kubernetes, konfigurasi skaffold.yaml
, dan definisi target Cloud Deploy, serta mendaftarkan target sebagai resource Cloud Deploy, kini Anda dapat memanggil pipeline pengiriman untuk membuat rilis dan melanjutkannya melalui progres target yang ditentukan dalam pipeline.
Men-deploy ke cluster pribadi
Anda dapat men-deploy aplikasi ke cluster GKE pribadi menggunakan salah satu dari dua opsi berikut:
Menggunakan jaringan Virtual Private Cloud
Anda dapat mengonfigurasi target untuk di-deploy ke cluster GKE pribadi yang terhubung ke jaringan Virtual Private Cloud:
-
Cluster pribadi adalah cluster native VPC yang node dan Pod-nya diisolasi secara default dari internet publik.
Jika Anda berencana menggunakan IP internal target cluster pribadi, tetapkan
internalIp
ketrue
padagke
dalam konfigurasi target. Di Cloud Build, buat kumpulan pekerja pribadi yang dapat Anda gunakan untuk men-deploy ke cluster pribadi ini.
Konfigurasikan lingkungan eksekusi untuk menggunakan kumpulan pribadi tersebut.
Anda harus menggunakan kumpulan ini selama
RENDER
. Anda juga dapat menggunakannya untukDEPLOY
danVERIFY
. Berikut adalah contoh yang menggunakanRENDER
danDEPLOY
:executionConfigs: - usages: - RENDER - DEPLOY workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
Lihat Mengakses cluster GKE pribadi dari pool pribadi Cloud Build menggunakan Identity Service for GKE dan Mengakses cluster GKE pribadi dengan kumpulan pribadi Cloud Build untuk mengetahui informasi selengkapnya.
Pertimbangan project dan izin
Anda dapat mengonfigurasi target untuk menggunakan kumpulan pekerja pribadi yang dapat di-deploy ke cluster pribadi. Namun, ada beberapa hal yang perlu diperhatikan jika resource berada di project yang berbeda.
- Saat Cloud Deploy dan kumpulan pekerja berada dalam project terpisah
Untuk berkomunikasi dengan kumpulan pribadi yang memiliki akses ke VPC dan berada dalam project yang berbeda dengan target Anda, agen layanan Cloud Deploy memerlukan izin yang memadai untuk berkomunikasi dengan project tersebut.
Akun layanan eksekusi juga memerlukan izin untuk mengakses bucket Cloud Storage.
- Saat kumpulan pekerja dan cluster berada dalam project terpisah
Jika cluster GKE pribadi berada dalam project yang berbeda dengan pool worker pribadi, akun layanan eksekusi memerlukan izin yang memadai untuk dapat berkomunikasi dengan project tempat cluster berada.
Gunakan target GKE Enterprise dan hubungkan gateway
Anda dapat mengonfigurasi target untuk di-deploy ke cluster GKE pribadi menggunakan target Anthos dan gateway koneksi.
Pendekatan ini tidak mengharuskan Anda menggunakan Virtual Private Cloud atau koneksi jaringan pribadi virtual.
Langkah selanjutnya
Memanggil pipeline pengiriman Anda untuk membuat rilis
Pelajari lebih lanjut cara mengonfigurasi target Cloud Deploy
Pelajari lebih lanjut cara menggunakan Skaffold dengan Cloud Deploy
Pelajari lingkungan eksekusi Cloud Deploy.
Pelajari GKE lebih lanjut