Menggunakan Container Registry dengan Google Cloud

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

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

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 di cluster Google Kubernetes Engine, akses didasarkan pada izin IAM dan cakupan akses penyimpanan.

Anda harus mengonfigurasi atau mengubah izin sendiri jika:

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

Lihat bagian khusus produk untuk 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 configure izin yang sesuai dalam kasus berikut:

  • Cloud Build berada dalam project yang berbeda dengan repositori yang ingin diakses oleh build.
  • Build Anda menggunakan akun layanan selain akun layanan Cloud Build default. Dalam hal ini, Anda harus memberikan izin ke 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 dikonfigurasi dengan izin untuk mengambil image.

Jika instance VM berada dalam project yang berbeda atau jika instance VM menggunakan akun layanan lain, Anda harus memberikan izin yang sesuai kepada akun layanan tersebut agar dapat 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, baca dokumentasi Compute Engine untuk men-deploy container 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 Anda, 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 pada instance VM node cluster untuk mengirim dan mengambil gambar.

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 dikonfigurasi dengan izin yang sesuai untuk mengirim atau mengambil image.

Jika cluster berada di project yang berbeda atau jika VM di cluster menggunakan akun layanan lain, Anda harus memberikan izin yang sesuai kepada akun layanan tersebut 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 gambar

Anda dapat menjalankan image Container Registry pada 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 pada 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 Google Cloud Console 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 Owner atau Editor, atau peran Cloud Run Admin dan Service Account User, atau peran khusus apa pun yang mencakup daftar izin khusus 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 untuk menyediakan runtime Anda sendiri dengan menyediakan image Docker atau Dockerfile kustom.

Dengan Cloud Build, Anda dapat mengotomatiskan pembangunan container, mendorong container ke Container Registry, dan men-deploy-nya 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 memberi akun layanan App Engine izin untuk mengakses repositori Container Registry Anda.

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. Bangun image Docker dan push image tersebut ke repositori Anda. Anda dapat menggunakan Cloud Build untuk membangun 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 pada 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 Google Cloud Console 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.