Men-deploy layanan atau tugas Cloud Run

Dokumen ini menjelaskan cara men-deploy aplikasi Anda, termasuk layanan Cloud Run dan tugas Cloud Run.

Cloud Deploy memungkinkan Anda men-deploy workload berbasis container ke layanan Cloud Run atau tugas apa pun. Semua fitur Cloud Deploy didukung saat Anda men-deploy ke target Cloud Run untuk layanan Cloud Run, tetapi deployment canary tidak didukung untuk tugas Cloud Run.

Dokumen ini menjelaskan tiga konfigurasi utama yang harus Anda selesaikan untuk men-deploy ke Cloud Run:

Batasan

  • Anda hanya dapat men-deploy satu layanan atau tugas Cloud Run per target.

  • Anda tidak dapat menjalankan deployment canary pada tugas Cloud Run.

    Namun, layanan Cloud Run dapat menggunakan deployment canary.

Sebelum memulai

Membuat konfigurasi target

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.

Pada definisi target, buat stanza run untuk mengidentifikasi lokasi pembuatan layanan Cloud Run.

Sintaksis untuk menentukan layanan atau tugas Cloud Run dalam definisi target Anda adalah sebagai berikut:

run:
 location: projects/[project_name]/locations/[region_name]

ID resource ini menggunakan elemen-elemen berikut:

  • [project_name] adalah nama project Google Cloud tempat layanan atau tugas Cloud Run Anda akan dibuat.

    Anda akan melakukan hal ini untuk setiap target. Kami merekomendasikan project yang berbeda untuk setiap layanan atau tugas Cloud Run. Jika menginginkan lebih dari satu layanan atau tugas dalam project yang sama, Anda harus menggunakan profil Skaffold dalam file konfigurasi skaffold.yaml.

  • [region_name] adalah region tempat layanan atau tugas akan dibuat. Layanan atau tugas Anda dapat berada di region mana pun yang didukung Cloud Run.

Berikut adalah contoh konfigurasi target, yang menentukan layanan atau tugas Cloud Run yang akan dibuat:

      apiVersion: deploy.cloud.google.com/v1
      kind: Target
      metadata:
       name: dev
      description: development service
      run:
       location: projects/my-app/locations/us-central1

Anda dapat menentukan target ini di dalam definisi pipeline pengiriman Cloud Deploy, atau secara terpisah. Apa pun itu, Anda harus mendaftarkan target sebelum membuat rilis untuk men-deploy layanan atau tugas Cloud Run.

Membuat konfigurasi Skaffold

Berikut adalah contoh file skaffold.yaml untuk deployment Cloud Run:

apiVersion: skaffold/v4beta7
kind: Config
metadata:
  name: cloud-run-application
manifests:
  rawYaml:
  - service.yaml
deploy:
  cloudrun: {}

Dalam file skaffold.yaml ini...

  • manifests.rawYaml menyediakan nama definisi layanan Cloud Run.

    Dalam contoh ini, service.yaml adalah file yang menentukan layanan Cloud Run yang akan di-deploy oleh Skaffold. Nama file ini bisa apa saja, tetapi berdasarkan konvensi, nama file ini adalah service.yaml untuk layanan, dan job.yaml untuk tugas.

  • Stanza deploy menentukan cara Anda ingin manifes di-deploy, khususnya, project dan lokasi. deploy wajib diisi.

    Sebaiknya biarkan {} kosong. Cloud Deploy mengisi ini selama rendering, berdasarkan project dan lokasi dari definisi target.

    Namun, untuk pengembangan lokal, Anda dapat memberikan nilai di sini. Namun, Cloud Deploy selalu menggunakan project dan lokasi dari definisi target, terlepas dari apakah nilai diberikan di sini atau tidak.

Membuat definisi layanan Cloud Run

Untuk membuat definisi layanan Cloud Run, Anda dapat membuatnya secara manual atau menyalin definisi dari layanan yang ada. Keduanya dijelaskan di bagian ini.

Opsi 1: buat Cloud Run baru service.yaml

service.yaml menentukan layanan Cloud Run Anda. Saat Anda membuat rilis, Skaffold akan menggunakan definisi ini untuk men-deploy layanan Anda.

Berikut adalah contoh yang disederhanakan:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
 name: [SERVICE_NAME]
spec:
 template:
  spec:
   containers:
   - image: [IMAGE_PATH]

Dengan keterangan:

  • [SERVICE_NAME] adalah nama untuk layanan Cloud Run ini.

  • [IMAGE_PATH] mengarah ke image container atau image yang Anda deploy dengan layanan ini.

Opsi 2: salin service.yaml dari layanan yang ada menggunakan Konsol Google Cloud

Anda dapat membuat layanan menggunakan Konsol Google Cloud atau menggunakan yang sudah ada, lalu menyalin service.yaml dari sana.

Untuk mendapatkan service.yaml menggunakan Google Cloud CLI:

gcloud run services describe [service_name] --format=export

Untuk mendapatkan service.yaml dari Konsol Google Cloud:

  1. Di Konsol Google Cloud, buka halaman Cloud Run Services.

  2. Pilih layanan yang ada yang definisinya ingin Anda gunakan.

Atau Anda dapat membuat yang baru, lalu memilihnya. Saat Anda memilih layanan, halaman Detail Layanan akan ditampilkan:

halaman detail layanan Konsol Google Cloud, yang menampilkan tab YAML

  1. Pilih tab YAML.

  2. Klik Edit, lalu salin konten YAML ke file baru bernama service.yaml di sistem file Anda sehingga Skaffold dapat menggunakannya saat Anda membuat rilis.

Membuat definisi tugas Cloud Run

Untuk men-deploy definisi tugas Cloud Run, Anda dapat membuat definisi tugas secara manual, atau menyalinnya dari tugas yang sudah ada. Keduanya dijelaskan di bagian ini.

Perhatikan bahwa tugas belum tentu dijalankan setelah di-deploy oleh Cloud Deploy. Hal ini berbeda dengan layanan, yang menjalankan aplikasi setelah di-deploy. Cara tugas dipanggil bergantung pada tugas itu sendiri.

Opsi 1: buat Cloud Run baru job.yaml

job.yaml menentukan tugas Cloud Run Anda. Saat Anda membuat rilis, Skaffold menggunakan definisi ini untuk men-deploy tugas.

Berikut adalah contoh yang disederhanakan:

apiVersion: run.googleapis.com/v1
kind: Job
metadata:
 name: [JOB_NAME]
spec:
  template:
  spec:
   containers:
   - image: [IMAGE_PATH]

Dengan keterangan:

  • [JOB_NAME] adalah nama untuk tugas Cloud Run ini.

  • [IMAGE_PATH] mengarah ke image container yang Anda deploy untuk tugas ini.

Opsi 2: salin job.yaml dari tugas yang ada menggunakan Konsol Google Cloud

Anda dapat membuat tugas menggunakan konsol Google Cloud atau menggunakan yang sudah ada, lalu menyalin job.yaml dari sana.

Untuk mendapatkan job.yaml menggunakan Google Cloud CLI:

gcloud run jobs describe [job_name] --format=export

Untuk mendapatkan job.yaml dari Konsol Google Cloud:

  1. Di konsol Google Cloud, buka halaman Tugas Cloud Run.

  2. Pilih pekerjaan yang ada yang definisinya ingin Anda gunakan.

Atau Anda dapat membuat yang baru, lalu memilihnya. Saat Anda memilih pekerjaan, halaman Detail Pekerjaan akan ditampilkan:

halaman detail tugas Konsol Google Cloud, yang menampilkan tab YAML

  1. Pilih tab YAML.

  2. Klik Edit, lalu salin konten YAML ke file baru bernama job.yaml di sistem file Anda sehingga Skaffold dapat menggunakannya saat Anda membuat rilis.

Menggabungkan semuanya

Setelah memiliki layanan atau definisi tugas Cloud Run, konfigurasi skaffold.yaml, dan definisi target Cloud Deploy, serta mendaftarkan target sebagai resource Cloud Deploy, sekarang Anda dapat memanggil pipeline pengiriman untuk membuat rilis dan melanjutkannya melalui progres target yang ditentukan dalam pipeline.

Panduan memulai Men-deploy aplikasi ke Cloud Run menggunakan Cloud Deploy menunjukkan semua cara kerja ini.

Perilaku layanan di seluruh revisi

Saat Anda men-deploy ulang layanan, revisi baru akan didasarkan pada service.yaml yang baru di-deploy. Tidak ada apa pun pada revisi sebelumnya yang dipertahankan, kecuali jika revisi tersebut sama pada YAML yang baru di-deploy. Misalnya, jika ada setelan konfigurasi atau label dalam revisi sebelumnya yang tidak ada dalam YAML baru, setelan atau label tersebut tidak akan disertakan dalam revisi baru.

Men-deploy layanan dan tugas Cloud Run di beberapa project

Jika Anda perlu men-deploy layanan atau tugas yang berada dalam project yang berbeda, akun layanan eksekusi Anda memerlukan izin untuk mengakses project tempat layanan atau tugas tersebut ditentukan.

Lihat Akun layanan eksekusi Cloud Deploy serta peran dan izin Identity and Access Management untuk mengetahui informasi selengkapnya.

Langkah selanjutnya