Men-deploy resource di seluruh fleet
Tutorial ini mengajarkan cara menggunakan paket armada untuk men-deploy manifes resource Kubernetes di seluruh armada cluster. Penggunaan alat GitOps seperti paket fleet Config Sync dapat membantu Anda menskalakan pengelolaan konfigurasi di sejumlah besar cluster.
Dalam tutorial ini, Anda akan menyelesaikan tugas berikut:
- Menghubungkan repositori Git ke Cloud Build
- Membuat dan mendaftarkan cluster ke fleet
- Menginstal Config Sync sebagai default armada
- Men-deploy resource dari repositori ke fleet cluster Anda
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Buat atau pilih Google Cloud project.
Peran yang diperlukan untuk memilih atau membuat project
- Pilih project: Memilih project tidak memerlukan peran IAM tertentu—Anda dapat memilih project mana pun yang telah diberi peran.
-
Membuat project: Untuk membuat project, Anda memerlukan peran Pembuat Project
(
roles/resourcemanager.projectCreator), yang berisi izinresourcemanager.projects.create. Pelajari cara memberikan peran.
-
Buat Google Cloud project:
gcloud projects create PROJECT_ID
Ganti
PROJECT_IDdengan nama untuk Google Cloud project yang Anda buat. -
Pilih project Google Cloud yang Anda buat:
gcloud config set project PROJECT_ID
Ganti
PROJECT_IDdengan nama project Google Cloud Anda.
-
Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.
Aktifkan GKE, Config Delivery (paket fleet), Cloud Build, Developer Connect API:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.gcloud services enable container.googleapis.com
configdelivery.googleapis.com cloudbuild.googleapis.com developerconnect.googleapis.com -
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Buat atau pilih Google Cloud project.
Peran yang diperlukan untuk memilih atau membuat project
- Pilih project: Memilih project tidak memerlukan peran IAM tertentu—Anda dapat memilih project mana pun yang telah diberi peran.
-
Membuat project: Untuk membuat project, Anda memerlukan peran Pembuat Project
(
roles/resourcemanager.projectCreator), yang berisi izinresourcemanager.projects.create. Pelajari cara memberikan peran.
-
Buat Google Cloud project:
gcloud projects create PROJECT_ID
Ganti
PROJECT_IDdengan nama untuk Google Cloud project yang Anda buat. -
Pilih project Google Cloud yang Anda buat:
gcloud config set project PROJECT_ID
Ganti
PROJECT_IDdengan nama project Google Cloud Anda.
-
Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.
Aktifkan GKE, Config Delivery (paket fleet), Cloud Build, Developer Connect API:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.gcloud services enable container.googleapis.com
configdelivery.googleapis.com cloudbuild.googleapis.com developerconnect.googleapis.com - Buat, atau miliki akses ke, akun GitHub.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Menghubungkan ke Git
Repositori Git Anda berisi resource yang ingin Anda deploy di seluruh kumpulan. Untuk men-deploy resource tersebut dengan paket armada, Anda harus menghubungkan repositori Git ke Cloud Build.
Membuat repositori Git Anda
Tutorial ini menggunakan GitHub sebagai penyedia Git. Untuk membuat repositori GitHub baru, selesaikan langkah-langkah berikut:
Di browser web, buka GitHub.
Jika perlu, login ke akun GitHub Anda. Jika Anda memiliki akses ke organisasi atau tim lain di GitHub, pastikan Anda membuat repositori dengan akun pribadi Anda.
Dari toolbar, pilih Tambahkan add, lalu klik Repositori baru.
Ketik
fleet-package-tutorialsebagai nama repositori.Biarkan Publik dipilih sebagai visibilitas repositori.
Pilih Buat repositori.
Menghubungkan repositori ke Cloud Build
Layanan paket fleet Config Sync menggunakan Cloud Build untuk menyinkronkan dan mengambil resource Kubernetes dari repositori Git Anda.
Untuk menghubungkan repositori GitHub Anda ke Cloud Build, selesaikan langkah-langkah berikut:
Buka halaman Cloud Build di konsol Google Cloud , lalu pilih Repositories.
Pastikan Anda berada di halaman Repositories generasi ke-2. Jika perlu, pilih Lihat repositori (generasi ke-2).
Klik Create host connection.
Di menu Region, pilih us-central1 (Iowa) sebagai region Anda.
Di kolom Name, ketik
fleet-package-quickstart-connectionsebagai nama untuk koneksi Anda.Klik Hubungkan.
Jika ini pertama kalinya Anda menghubungkan Cloud Build ke akun GitHub, selesaikan langkah-langkah berikut:
- Terima permintaan untuk token OAuth GitHub Anda. Token disimpan di Secret Manager untuk digunakan dengan Koneksi GitHub Cloud Build. Klik Lanjutkan.
- Instal Cloud Build ke repositori GitHub Anda. Pilih Instal di akun baru.
- Di jendela GitHub baru yang terbuka, pilih akun GitHub tempat Anda membuat fork Cymbal Bank sebelumnya. Di lingkungan produksi, Anda dapat memilih akun atau repositori lain yang telah Anda delegasikan aksesnya.
- Ikuti perintah autentikasi apa pun untuk mengonfirmasi identitas Anda di GitHub.
- Di jendela GitHub untuk akses repositori Cloud Build, pilih Only select repositories.
- Dari menu drop-down yang mencantumkan repositori, pilih repositori
fleet-package-tutorialAnda. - Klik Simpan.
Di halaman Cloud Build di konsol Google Cloud , klik Link repository untuk menghubungkan repositori Git baru ke Cloud Build.
Di menu Connection, pilih
fleet-package-quickstart-connection.Di menu Repositories, pilih repositori
fleet-package-tutorialAnda.Pilih Tautkan.
Menyiapkan fleet Anda
Di bagian ini, Anda akan menyiapkan fleet dengan membuat cluster, mendaftarkannya ke fleet, dan menginstal Config Sync sebagai paket fleet.
Membuat cluster
Untuk mendemonstrasikan cara menggunakan paket armada untuk men-deploy resource di beberapa cluster, tutorial ini menunjukkan cara membuat dua cluster.
Untuk membuat dua cluster dan mendaftarkannya ke fleet project Anda:
Buat cluster GKE:
gcloud container clusters create-auto cluster1 \ --project=PROJECT_ID \ --region=REGION \ --fleet-project=PROJECT_ID \ --release-channel=rapidGanti kode berikut:
PROJECT_IDdengan ID project Anda.REGIONdengan region tempat Anda ingin membuat cluster, sepertius-central1.
Buat cluster GKE kedua:
gcloud container clusters create-auto cluster2 \ --project=PROJECT_ID \ --region=REGION \ --fleet-project=PROJECT_ID \ --release-channel=rapid
Menginstal Config Sync sebagai default armada
Untuk menggunakan layanan paket armada, Config Sync harus diinstal di kedua cluster. Anda dapat menginstal Config Sync di beberapa cluster sekaligus, dan semua cluster mendatang yang terdaftar ke fleet, dengan menyelesaikan langkah-langkah berikut:
Di konsol Google Cloud , buka halaman Feature Manager.
Di panel Config Sync, klik Configure.
Klik Sesuaikan setelan armada. Pada dialog yang muncul, pilih versi Config Sync yang akan diinstal.
Klik Configure.
Pada dialog konfirmasi Mengonfigurasi setelan armada, klik Konfirmasi. Jika Anda belum pernah mengaktifkan Config Sync, mengklik Confirm juga akan mengaktifkan
anthosconfigmanagement.googleapis.comAPI.Di tabel Clusters in the fleet, pilih kedua cluster, lalu klik Sync to fleet settings. Tindakan ini akan menginstal Config Sync di kedua Cluster dengan setelan yang Anda konfigurasi.
Mungkin perlu waktu beberapa menit hingga cluster disinkronkan. Anda dapat melanjutkan ke langkah berikutnya jika Config Sync ditampilkan sebagai Diinstal.
Menyiapkan akun layanan untuk Cloud Build
Untuk membuat akun layanan dan memberikan izin yang diperlukan ke Cloud Build, selesaikan langkah-langkah berikut:
Buat akun layanan:
gcloud iam service-accounts create "quickstart-service-account"Beri akun layanan izin untuk mengambil resource dari repositori Git Anda dengan menambahkan binding kebijakan IAM untuk peran Penerbit Paket Resource:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:quickstart-service-account@PROJECT_ID.iam.gserviceaccount.com" \ --role='roles/configdelivery.resourceBundlePublisher'Jika diminta, pilih
Nonesebagai kondisi untuk kebijakan.Beri akun layanan izin untuk menulis log dengan menambahkan binding kebijakan IAM untuk peran Logs Writer:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:quickstart-service-account@PROJECT_ID.iam.gserviceaccount.com" \ --role='roles/logging.logWriter'Jika diminta, pilih
Nonesebagai kondisi untuk kebijakan.Tambahkan binding kebijakan IAM untuk peran Artifact Registry Writer:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:quickstart-service-account@PROJECT_ID.iam.gserviceaccount.com" \ --role='roles/artifactregistry.writer'Jika diminta, pilih
Nonesebagai kondisi untuk kebijakan.
Men-deploy resource di seluruh perangkat Anda
Dalam tutorial ini, Anda akan menambahkan manifes Kubernetes dengan deployment nginx ke repositori Git, memublikasikan rilis, lalu membuat paket armada untuk men-deploy aplikasi nginx.
Lakukan commit manifes Kubernetes ke repositori Anda
Untuk menambahkan resource ke GitHub dan memublikasikan rilis, selesaikan langkah-langkah berikut:
Di jendela browser web repositori GitHub Anda, klik Add file, lalu Create new file.
Beri nama file Anda
deployment.yamldan tempelkan konten berikut ke dalamnya:apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - image: nginx:1.14.2 name: nginx ports: - containerPort: 80Klik Commit changes...
Pada dialog konfirmasi, biarkan opsi Lakukan langsung ke cabang
maintetap dipilih, lalu klik Lakukan perubahan.Di halaman utama repositori Anda, pilih Rilis dari sidebar.
Di bagian atas halaman, pilih Buat rilis baru.
Pilih menu Pilih tag, lalu ketik
v1.0.0sebagai tag. Klik Buat tag baru.Klik Publikasikan rilis.
Men-deploy resource ke cluster dengan paket fleet
Untuk men-deploy resource baru, buat paket armada baru:
Paket fleet ini menargetkan semua cluster di fleet Anda karena tidak menentukan pemilih cluster (di bagian
target.fleet). Paket ini dikonfigurasi untuk men-deploy varian deployment (yang berasal dari filedeployment.yamlAnda) ke semua cluster ini.Di Cloud Shell, buat file bernama
fleet-package.yamldengan konten berikut:resourceBundleSelector: cloudBuildRepository: name: projects/PROJECT_ID/locations/us-central1/connections/fleet-package-quickstart-connection/repositories/REPOSITORY_NAME tag: v1.0.0 serviceAccount: projects/PROJECT_ID/serviceAccounts/quickstart-service-account@PROJECT_ID.iam.gserviceaccount.com path: # Match all files (including deployment.yaml) to generate variants variantsPattern: "*.yaml" target: fleet: project: projects/PROJECT_ID rolloutStrategy: rolling: maxConcurrent: 1 variantSelector: # Explicitly match the variant generated from "deployment.yaml" variantNameTemplate: "deployment"Ganti
REPOSITORY_NAMEdengan nama repositori dari Cloud Build. Ini biasanya dalam formatUSERNAME-REPOSITORY_NAME.Buat paket fleet untuk memulai peluncuran:
gcloud container fleet packages create fp-nginx \ --source=fleet-package.yaml \ --project=PROJECT_IDPastikan paket armada telah dibuat:
gcloud container fleet packages listAnda dapat mengklik link yang diberikan untuk melihat log streaming untuk tugas Cloud Build.
Paket armada mulai men-deploy resource Kubernetes di seluruh armada Anda.
Di halaman Google Kubernetes Engine di konsol Google Cloud , buka halaman Workloads untuk melihat tampilan gabungan workload yang di-deploy di semua cluster GKE Anda:
Diperlukan waktu beberapa menit agar beban kerja tersedia. Anda mungkin juga melihat error ketersediaan saat Autopilot menyesuaikan permintaan resource untuk deployment baru.
Perhatikan bagaimana, karena
maxConcurrent:disetel ke1dalam definisi paket armada Anda, API paket armada menunggu hingganginx-deploymentdi-deploy sepenuhnya di satu cluster sebelum memulai deployment ke cluster kedua. Jika Anda mengubah strategi peluncuran menjadimaxConcurrent: 2atau yang lebih tinggi, resource akan di-deploy ke kedua cluster secara bersamaan.Setelah beberapa menit, Anda akan melihat dua workload baru untuk
nginx-deploymentdi kedua cluster Anda. Anda mungkin perlu memuat ulang halaman.
Anda dapat terus menjelajahi berbagai strategi deployment dengan paket armada. Misalnya, Anda dapat menambahkan cluster baru ke armada untuk mengamati bahwa workload Anda di-deploy secara otomatis ke cluster baru tersebut. Untuk mengetahui informasi selengkapnya tentang strategi dan variasi deployment, lihat Men-deploy paket armada.
Pembersihan
Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, hapus project Google Cloud yang berisi resource tersebut.
- Di Konsol Google Cloud , buka halaman Manage resources.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Anda dapat menghapus repositori dengan menyelesaikan langkah-langkah berikut:
Di jendela browser web repositori GitHub Anda, di bagian nama repositori, klik Setelan.
Di halaman Setelan umum (yang dipilih secara default), buka bagian Danger Zone, lalu klik Hapus repositori ini.
Klik Saya ingin menghapus repositori ini.
Baca peringatan dan klik Saya telah membaca dan memahami efek ini.
Untuk memverifikasi bahwa Anda menghapus repositori yang benar, di kolom teks, ketik nama repositori Anda.
Klik Delete this repository.
Langkah berikutnya
- Pelajari lebih lanjut paket armada.
- Pelajari cara men-deploy paket armada.
- Coba tutorial aplikasi Scalable apps tutorial, serangkaian tutorial yang mengajarkan cara men-deploy, menjalankan, dan mengelola lingkungan aplikasi modern di GKE. Bagian ini mencakup tutorial Memusatkan pengelolaan perubahan yang membahas cara menskalakan perubahan konfigurasi dengan paket armada.