Men-deploy resource di seluruh fleet
Tutorial ini mengajarkan cara menggunakan paket fleet untuk men-deploy manifes resource Kubernetes di seluruh fleet 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
Sebelum memulai
- 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.
- Install the Google Cloud CLI.
-
To use a federated identity with the gcloud CLI, you must first configure the tool to use a federated identity.
For more information, see Browser-based sign-in with the gcloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE Enterprise, Config Delivery (fleet packages), Cloud Build, Developer Connect APIs:
gcloud services enable anthos.googleapis.com
configdelivery.googleapis.com cloudbuild.googleapis.com developerconnect.googleapis.com - Install the Google Cloud CLI.
-
To use a federated identity with the gcloud CLI, you must first configure the tool to use a federated identity.
For more information, see Browser-based sign-in with the gcloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE Enterprise, Config Delivery (fleet packages), Cloud Build, Developer Connect APIs:
gcloud services enable anthos.googleapis.com
configdelivery.googleapis.com cloudbuild.googleapis.com developerconnect.googleapis.com - Membuat, atau memiliki akses ke, akun GitHub.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloud yang 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 armada. Untuk men-deploy resource tersebut dengan paket fleet, Anda harus menghubungkan repositori GitHub ke Cloud Build.
Membuat repositori Git
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-tutorial
sebagai 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 Repositori 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-connection
sebagai nama koneksi Anda.Klik Connect.
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. Dalam lingkungan produksi, Anda dapat memilih akun atau repositori lain yang aksesnya telah Anda delegasikan.
- Ikuti perintah autentikasi 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-tutorial
Anda. - 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 Repositori, pilih repositori
fleet-package-tutorial
Anda.Pilih Tautkan.
Menyiapkan fleet
Di bagian ini, Anda akan menyiapkan fleet dengan membuat cluster, mendaftarkannya ke fleet, dan menginstal Config Sync sebagai paket fleet.
Membuat cluster
Untuk menunjukkan cara menggunakan paket fleet guna 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=rapid
Ganti kode berikut:
PROJECT_ID
dengan ID project Anda.REGION
dengan 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 fleet, Config Sync harus diinstal di kedua cluster. Anda dapat menginstal Config Sync di beberapa cluster sekaligus, dan 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 Upgrade otomatis. Setelan ini memastikan bahwa cluster Anda memiliki versi Config Sync yang mendukung paket fleet.
Klik Simpan perubahan.
Klik Konfigurasikan.
Di dialog konfirmasi Mengonfigurasi setelan armada, klik Konfirmasi. Jika sebelumnya Anda belum mengaktifkan Config Sync, mengklik Konfirmasi juga akan mengaktifkan
anthosconfigmanagement.googleapis.com
API.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.
Diperlukan waktu beberapa menit untuk menyinkronkan cluster. Anda dapat melanjutkan ke langkah berikutnya saat 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"
Berikan izin akun layanan untuk mengambil resource dari repositori Git Anda dengan menambahkan binding kebijakan IAM untuk peran Resource Bundle Publisher:
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
None
sebagai kondisi untuk kebijakan.Berikan izin akun layanan 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
None
sebagai kondisi untuk kebijakan.
Men-deploy resource di seluruh perangkat
Dalam tutorial ini, Anda akan menambahkan manifes Kubernetes dengan deployment nginx ke repositori Git, memublikasikan rilis, lalu membuat paket fleet untuk men-deploy aplikasi nginx.
Melakukan 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 Tambahkan file, lalu Buat file baru.
Beri nama file Anda
deployment.yaml
dan 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: 80
Klik Commit changes...
Di dialog konfirmasi, biarkan Commit directly to the
main
branch dipilih, lalu klik Commit changes.Di halaman utama repositori, pilih Rilis dari sidebar.
Di bagian atas halaman, pilih Buat draf rilis baru.
Pilih menu Pilih tag dan ketik
v1.0.0
sebagai tag. Klik Buat tag baru.Klik Publikasikan rilis.
Men-deploy resource ke cluster dengan paket fleet
Untuk men-deploy resource baru, buat paket fleet baru:
Paket fleet ini menargetkan semua cluster dalam fleet Anda karena tidak berisi kolom pemilih. Hal ini juga berarti setiap cluster mendatang yang ditambahkan ke fleet akan otomatis memiliki deployment nginx.
Di Cloud Shell, buat file bernama
fleet-package.yaml
dengan 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: target: fleet: project: projects/PROJECT_ID rolloutStrategy: rolling: maxConcurrent: 1
Ganti
REPOSITORY_NAME
dengan nama repositori dari Cloud Build. Nama ini biasanya dalam formatUSERNAME-REPOSITORY_NAME
.Buat paket fleet untuk memulai peluncuran:
gcloud alpha container fleet packages create fp-nginx.yaml \ --source=fleet-package.yaml \ --project=PROJECT_ID
Pastikan paket fleet telah dibuat:
gcloud alpha container fleet packages list
Anda dapat mengklik link yang disediakan untuk melihat log streaming untuk tugas Cloud Build.
Paket fleet mulai meluncurkan resource Kubernetes di seluruh fleet 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:
Mungkin perlu waktu beberapa menit agar beban kerja tersedia. Anda mungkin juga melihat error ketersediaan saat Autopilot menyesuaikan permintaan resource untuk deployment baru.
Perhatikan bahwa karena
maxConcurrent:
ditetapkan ke1
dalam definisi paket fleet, API paket fleet akan menunggu hingganginx-deployment
di-deploy sepenuhnya di satu cluster sebelum memulai deployment ke cluster kedua. Jika Anda mengubah strategi peluncuran menjadimaxConcurrent: 2
atau yang lebih tinggi, resource akan di-deploy ke kedua cluster secara bersamaan.Setelah beberapa menit, Anda akan melihat dua workload baru untuk
nginx-deployment
di kedua cluster Anda. Anda mungkin perlu memuat ulang halaman.
Anda dapat terus mempelajari berbagai strategi deployment dengan paket fleet. Misalnya, Anda dapat menambahkan cluster baru ke fleet untuk mengamati bahwa workload Anda di-deploy secara otomatis ke cluster baru tersebut. Untuk informasi selengkapnya tentang strategi dan variasi deployment, lihat Men-deploy paket fleet.
Pembersihan
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan pada halaman ini, hapus project Google Cloud yang berisi resource tersebut.
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang Anda buat.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Anda dapat menghapus repositori dengan menyelesaikan langkah-langkah berikut:
Di jendela browser web dari fork GitHub Cymbal Bank, klik Setelan di bagian nama repositori Anda.
Di halaman Setelan umum (yang dipilih secara default), buka bagian Danger Zone, lalu klik Delete this repository.
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 selanjutnya
- Pelajari paket armada lebih lanjut.
- Pelajari cara men-deploy paket fleet.
- Coba tutorial aplikasi Tutorial aplikasi yang skalabel, serangkaian tutorial yang mengajari Anda cara men-deploy, menjalankan, dan mengelola lingkungan aplikasi modern di GKE Enterprise. Lab ini mencakup tutorial Melakukan sentralisasi manajemen perubahan yang membahas penskalaan perubahan konfigurasi dengan paket fleet.