Menggunakan Container Registry dengan Google Cloud

Untuk menyederhanakan alur kerja build dan deployment, beberapa akun layanan dan lingkungan runtime Google Cloud telah dikonfigurasi sebelumnya dengan izin untuk mengakses penampung yang disimpan dalam project yang sama.

Halaman ini merangkum integrasi umum dengan produk Google Cloud dan persyaratan terkait untuk mengakses penampung.

Persyaratan akses umum

Secara default, akun layanan untuk beberapa integrasi umum dikonfigurasi dengan izin Cloud Storage untuk mengakses Container Registry dalam project yang sama.

Untuk akun layanan yang digunakan oleh VM Compute Engine, termasuk VM dalam cluster Google Kubernetes Engine, akses didasarkan pada izin IAM dan cakupan akses penyimpanan.

Anda harus mengonfigurasi atau mengubah izin sendiri jika:

  • Anda menggunakan akun layanan di satu project untuk mengakses Container Registry di project lain
  • Anda menggunakan akun layanan default dengan akses hanya baca ke penyimpanan, tetapi ingin menarik dan mendorong gambar
  • Anda menggunakan akun layanan kustom untuk berinteraksi dengan Container Registry

Lihat bagian khusus produk untuk mengetahui informasi tambahan.

Cloud Build

Secara default, akun layanan Cloud Build memiliki izin untuk mengirim dan mengambil image saat Container Registry berada dalam project yang sama.

Anda harus mengonfigurasi izin yang sesuai sendiri dalam kasus berikut:

  • Cloud Build berada dalam project yang berbeda dengan repositori yang ingin diakses build.
  • Build Anda menggunakan akun layanan selain akun layanan Cloud Build default. Dalam hal ini, Anda harus memberikan izin akun layanan untuk mengakses Container Registry.

Compute Engine

Anda dapat membuat instance VM menggunakan image yang disimpan di Container Registry.

Izin yang diperlukan

Jika instance VM dan Container Registry berada dalam project Google Cloud yang sama, akun layanan default Compute Engine akan dikonfigurasi dengan izin untuk mengambil image.

Jika instance VM berada dalam project yang berbeda atau jika instance VM menggunakan akun layanan yang berbeda, Anda harus memberikan izin yang sesuai kepada akun layanan untuk mengakses bucket penyimpanan yang digunakan oleh Container Registry.

Secara default, VM Compute Engine memiliki cakupan akses read-only yang dikonfigurasi untuk bucket penyimpanan. Untuk mengirim image Docker pribadi, instance VM harus memiliki cakupan akses penyimpanan read-write.

Untuk mengetahui detail tentang izin dan cakupan akses, lihat Mengintegrasikan dengan layanan Google Cloud.

Men-deploy image

Saat membuat VM, Anda dapat men-deploy image ke VM tersebut. Untuk mempelajari lebih lanjut, lihat dokumentasi Compute Engine untuk men-deploy penampung dan membuat template instance VM.

Instance Compute Engine yang dioptimalkan untuk container

Untuk mengetahui informasi tentang cara memulai instance Compute Engine yang dioptimalkan untuk container menggunakan image di registry, lihat Memulai container Docker melalui cloud-config.

Untuk informasi tambahan, lihat Membuat dan Mengonfigurasi Instance.

Google Kubernetes Engine

Google Kubernetes Engine menggunakan akun layanan yang dikonfigurasi di instance VM node cluster untuk mendorong dan menarik image.

Izin yang diperlukan

Jika cluster Google Kubernetes Engine dan bucket penyimpanan Container Registry berada dalam project Google Cloud yang sama, akun layanan default Compute Engine akan dikonfigurasi dengan izin yang sesuai untuk mendorong atau menarik image.

Jika cluster berada dalam project yang berbeda atau jika VM dalam cluster menggunakan akun layanan yang berbeda, Anda harus memberikan izin yang sesuai kepada akun layanan untuk mengakses bucket penyimpanan yang digunakan oleh Container Registry.

Secara default, VM Compute Engine memiliki cakupan akses read-only yang dikonfigurasi untuk bucket penyimpanan. Untuk mengirim image Docker pribadi, instance VM harus memiliki cakupan akses penyimpanan read-write.

Untuk mengetahui detail tentang izin dan cakupan akses, lihat Mengintegrasikan dengan layanan Google Cloud.

Menjalankan image

Anda dapat menjalankan image Container Registry di cluster Google Kubernetes Engine menggunakan perintah berikut:

kubectl run [NAME] --image=[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]

dengan:

  • [NAME] adalah nama resource
  • [HOSTNAME] tercantum di bagian Location di konsol. Ini adalah salah satu dari empat opsi: gcr.io, us.gcr.io, eu.gcr.io, atau asia.gcr.io.
  • [PROJECT-ID] adalah project ID Konsol Google Cloud Anda. Jika project ID Anda berisi titik dua (:), lihat Project cakupan domain.
  • [IMAGE] adalah nama image di Container Registry.
  • [TAG] adalah tag yang mengidentifikasi versi image di Container Registry. Jika Anda tidak menentukan tag, Container Registry akan mencari tag default latest.

Untuk informasi selengkapnya tentang perintah Kubernetes, lihat Ringkasan kubectl.

Cloud Run

Anda dapat men-deploy image yang disimpan di Container Registry ke Cloud Run.

Izin yang diperlukan

Untuk men-deploy ke Cloud Run, Anda harus memiliki peran Pemilik atau Editor, atau peran Admin Cloud Run dan Pengguna Akun Layanan, atau peran kustom apa pun yang menyertakan daftar izin tertentu ini.

Men-deploy image

Untuk mempelajari cara men-deploy image ke Cloud Run, lihat dokumentasi Cloud Run.

App Engine Lingkungan Fleksibel

Anda dapat menggunakan Lingkungan Fleksibel App Engine untuk menyesuaikan runtime yang ada (seperti Java 8), atau menyediakan runtime Anda sendiri dengan menyediakan image Docker atau Dockerfile kustom.

Dengan Cloud Build, Anda dapat mengotomatiskan pembuatan container, mengirimkannya ke Container Registry, dan men-deploynya ke App Engine.

Izin yang diperlukan

Secara default, akun layanan default App Engine memiliki izin untuk mengambil dari dan mengirim ke repositori dalam project yang sama.

Jika App Engine berada dalam project yang berbeda, Anda harus memberikan izin kepada akun layanan App Engine untuk mengakses repositori Container Registry.

Men-deploy ke App Engine

Anda dapat men-deploy image yang dihosting oleh Container Registry ke App Engine menggunakan Google Cloud CLI.

  1. Buat file konfigurasi App Engine untuk aplikasi Anda.
  2. Buat image Docker dan kirim ke repositori Anda. Anda dapat menggunakan Cloud Build untuk mem-build dan mengirim container ke repositori.
  3. Deploy image Anda ke App Engine dengan menjalankan perintah berikut:

    gcloud app deploy --image-url=[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
    

dengan:

  • [HOSTNAME] tercantum di bagian Location di konsol. Ini adalah salah satu dari empat opsi: gcr.io, us.gcr.io, eu.gcr.io, atau asia.gcr.io.
  • [PROJECT-ID] adalah project ID Konsol Google Cloud Anda. Jika project ID Anda berisi titik dua (:), lihat Project cakupan domain.
  • [IMAGE] adalah nama image di Container Registry.
  • [TAG] adalah tag yang mengidentifikasi versi image di Container Registry. Jika Anda tidak menentukan tag, Container Registry akan mencari tag default latest.