Menggunakan lingkungan eksekusi Cloud Deploy

Lingkungan eksekusi Cloud Deploy adalah lingkungan tempat Cloud Deploy menjalankan operasi render, pra-deployment, deployment, verifikasi, dan pasca-deployment. Lingkungan eksekusi terdiri dari komponen berikut:

  • Kumpulan pekerja Cloud Build (default atau pribadi) tempat Cloud Deploy menjalankan operasi render, predeploy, deploy, verifikasi, dan postdeploy

  • Akun layanan (default atau alternatif) yang memanggil Cloud Deploy untuk melakukan tindakan ini

  • Lokasi penyimpanan (default atau alternatif) untuk manifes yang dirender di Cloud Storage

  • Waktu tunggu Cloud Build untuk operasi (default atau kustom)

Dokumen ini menjelaskan lingkungan eksekusi, akun layanan, dan penyimpanan default untuk Cloud Deploy, serta alasan dan cara mengubah default ini.

Default

Berikut adalah default yang digunakan Cloud Deploy untuk menjalankan, mengeksekusi rendering dan deployment, serta menyimpan aset seperti manifes yang dirender:

  • Kumpulan pekerja default

    Secara default, Cloud Deploy berjalan di pool worker Cloud Build default. Namun, Anda dapat mengonfigurasi Cloud Deploy untuk menggunakan pool worker pribadi Cloud Build.

    Untuk mengetahui detail selengkapnya tentang kumpulan pekerja, lihat Ringkasan pool default dan pool pribadi Cloud Build.

  • Akun layanan eksekusi default

    Secara default, Cloud Deploy menggunakan akun layanan Compute Engine default.

  • Lokasi penyimpanan Cloud Deploy default

    Nilai ini adalah bucket Cloud Storage tempat Cloud Deploy menyimpan manifes yang dirender. Secara default, Cloud Deploy membuat bucket Cloud Storage, di region yang sama dengan resource Cloud Deploy, yang memiliki bentuk berikut:

    <location>.deploy-artifacts.<project ID>.appspot.com

  • Waktu tunggu Cloud Build default

    Secara default, Cloud Build memiliki waktu tunggu 1 jam untuk operasi yang dilakukannya untuk Cloud Deploy. Anda dapat mengubah waktu tunggu tersebut dalam spesifikasi lingkungan eksekusi di konfigurasi target.

  • Tingkat kejelasan default untuk Skaffold, gcloud CLI, dan kubectl

    Secara default, tingkat log untuk alat ini ditetapkan ke default masing-masing, biasanya warn atau yang setara. Anda dapat mengubahnya menjadi debug atau yang setara.

Bagian berikutnya menjelaskan situasi saat Anda perlu mengubah salah satu nilai ini, dan link ke petunjuk untuk melakukannya.

Tentang kumpulan pekerja Cloud Build

Lingkungan eksekusi Cloud Deploy dapat menggunakan salah satu hal berikut:

  • Kumpulan default Cloud Build

    Kumpulan pekerja default adalah lingkungan terhosting yang aman dengan akses ke internet publik. Operasi render, deployment, pra-deployment, pasca-deployment, dan verifikasi dieksekusi di kumpulan tersebut, yang diisolasi dari beban kerja lain.

  • Kumpulan pribadi

    Kumpulan pekerja pribadi adalah kumpulan pribadi dan khusus yang dapat disesuaikan lebih dari kumpulan pekerja default. Penyesuaian tersebut dapat mencakup kemampuan untuk mengakses resource di jaringan pribadi. Seperti kumpulan pekerja default, kumpulan pekerja pribadi dihosting dan dikelola sepenuhnya oleh Cloud Build. Kumpulan ini dapat ditingkatkan atau diturunkan skalanya hingga nol, tanpa perlu menyiapkan, mengupgrade, atau menskalakan infrastruktur.

    Ringkasan kumpulan pribadi Cloud Build menjelaskan kumpulan pekerja default dan kumpulan pekerja pribadi secara lebih menyeluruh, termasuk tabel yang membandingkan fitur-fiturnya.

Mengubah lingkungan eksekusi Cloud Deploy

Anda dapat mengubah lingkungan eksekusi Cloud Deploy dalam situasi berikut:

  • Anda ingin men-deploy ke cluster Google Kubernetes Engine pribadi

  • Anda ingin operasi render, deploy, pra-deploy, pasca-deploy, atau verifikasi, atau kombinasi kelimanya, dilakukan di lingkungan yang terisolasi dari organisasi lain.

  • Anda ingin operasi ini dilakukan di lingkungan yang tidak terhubung ke internet publik.

  • Anda menginginkan lingkungan terpisah untuk rendering dan deployment.

  • Anda ingin menggunakan akun layanan khusus dengan izin yang lebih spesifik untuk penggunaan Anda daripada izin yang tersedia di akun layanan default.

  • Anda ingin menyimpan manifes yang dirender di lokasi yang berbeda dari bucket Cloud Storage default.

Konfigurasi ketiga bagian lingkungan eksekusi (kumpulan pekerja, akun layanan, dan penyimpanan) dilakukan per target, di konfigurasi YAML setiap target.

Beralih dari pool default ke pool pribadi

Anda mengonfigurasi kumpulan pekerja per target, sehingga kumpulan tersebut digunakan untuk RENDER, DEPLOY, PREDEPLOY, POSTDEPLOY, atau VERIFY (atau kombinasi kelimanya) hanya untuk target tersebut.

Untuk menggunakan pool worker default bagi operasi rendering dan deployment, Anda tidak perlu melakukan apa pun.

Berikut adalah contoh konfigurasi target yang menentukan kumpulan worker pribadi untuk DEPLOY, dan kumpulan worker default untuk RENDER, PREDEPLOY, POSTDEPLOY, dan VERIFY:

executionConfigs:
- usages:
  - DEPLOY
  privatePool:
    workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
- usages:
  - RENDER
  - PREDEPLOY
  - VERIFY
  - POSTDEPLOY

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi kumpulan pribadi untuk target, lihat Dokumentasi konfigurasi pipeline pengiriman.

Beralih dari akun layanan eksekusi default ke kustom

Seperti halnya kumpulan pekerja, Anda dapat menentukan akun layanan alternatif yang akan digunakan untuk merender atau men-deploy (atau keduanya) per target. Untuk melakukannya, tambahkan baris berikut ke konfigurasi target, setelah elemen workerPool:

serviceAccount: "[name]@[project_name].iam.gserviceaccount.com"

Akun layanan yang ditentukan harus menyertakan peran clouddeploy.jobRunner, seperti yang dijelaskan dalam dokumen Akun layanan Cloud Deploy.

Lihat Definisi target untuk mengetahui detail selengkapnya tentang konfigurasi ini.

Mengubah lokasi penyimpanan

Untuk mengubah bucket penyimpanan dari default Cloud Deploy, tambahkan baris berikut ke target definition di stanza workerPool:

artifactStorage: "gs://[bucket_name]/[dir]"

Konfigurasi ini mengubah lokasi penyimpanan manifes yang dirender, tetapi tidak memengaruhi lokasi penyimpanan sumber rendering.

Mengubah tingkat log untuk Skaffold, gcloud CLI, dan kubectl

Untuk mengubah level log Skaffold, gcloud CLI, dan kubectl, dari default masing-masing ke debug (atau yang setara), tetapkan verbose ke true dalam konfigurasi eksekusi. Berikut contohnya:

executionConfigs:
- usages:
  - [RENDER | PREDEPLOY|  DEPLOY | VERIFY | POSTDEPLOY]
  workerPool:
  serviceAccount:
  artifactStorage:
  executionTimeout:
  verbose: true

Menggunakan Cloud Deploy dalam perimeter Kontrol Layanan VPC

Cloud Deploy mendukung Kontrol Layanan VPC.

Anda dapat mengikuti panduan memulai Kontrol Layanan VPC untuk menyiapkan perimeter layanan.

Batasan

  • Anda harus menggunakan pool worker pribadi Cloud Build untuk lingkungan eksekusi target, bukan pool worker default.

  • Project yang berisi kumpulan pekerja dan project yang berisi resource Cloud Deploy Anda harus tetap berada dalam perimeter keamanan Kontrol Layanan VPC yang sama.

  • Cluster GKE yang Anda deploy ke perimeter Kontrol Layanan VPC harus berupa cluster pribadi.

    Untuk menyiapkan kumpulan pribadi untuk cluster pribadi, lihat tutorial ini.

Langkah berikutnya