Memecahkan masalah image container

Pelajari langkah-langkah pemecahan masalah yang mungkin berguna jika Anda mengalami masalah dalam mengelola image container di Artifact Registry.

Tidak dapat menarik image atau men-deploy ke lingkungan runtime Google Cloud

Periksa hal-hal berikut:

  1. Verifikasi bahwa jalur lengkap image yang Anda dorong sudah benar. Jalur tersebut harus menyertakan nama host registry, project ID Google Cloud, repositori, dan image. Contoh:

    us-east1-docker.pkg.dev/my-project/my-repo/my-image:v1
    

    Untuk mengetahui informasi selengkapnya, lihat Nama repositori dan image.

  2. Pastikan akun yang mengambil image memiliki izin untuk membaca dari repositori.

    • Akun layanan default Cloud Build memiliki izin baca dan tulis ke repositori di project Google Cloud yang sama. Jika Anda menggunakan akun layanan yang disediakan pengguna atau mengirim dan mengambil image di seluruh project, berikan peran Artifact Registry Writer ke akun layanan yang menjalankan build.
    • Secara default, Compute Engine, Cloud Run, dan Google Kubernetes Engine memiliki izin baca untuk repositori dalam project yang sama. Jika Artifact Registry berada di project yang berbeda dengan lingkungan runtime, Anda harus memberikan peran Artifact Registry Reader ke akun layanan runtime.
    • Jika menggunakan Docker atau alat pihak ketiga lainnya, Anda harus:

Tidak dapat mengirim image ke Artifact Registry

Periksa hal-hal berikut:

  1. Verifikasi bahwa repositori ada. Tidak seperti Container Registry, pembuatan repositori adalah operasi yang terpisah dari pengiriman image pertama. Jika repositori tidak ada, buat repositori.

  2. Verifikasi bahwa jalur lengkap image yang Anda dorong sudah benar. Jalur tersebut harus menyertakan nama host registry, project ID Google Cloud, repositori, dan image. Contoh:

    us-east1-docker.pkg.dev/my-project/my-repo/my-image:v1
    

    Setiap repositori Artifact Registry adalah resource terpisah, sehingga Anda tidak dapat mengirim image ke jalur tanpa repositori. Misalnya, us-east1-docker.pkg.dev/my-project/my-image:v1 adalah jalur image yang tidak valid.

    Untuk mengetahui informasi selengkapnya, lihat Nama repositori dan image.

  3. Pastikan akun yang mengirim image memiliki izin untuk menulis ke repositori.

    • Akun layanan default Cloud Build memiliki izin baca dan tulis ke repositori di project Google Cloud yang sama. Jika Anda menggunakan akun layanan yang disediakan pengguna atau mengirim dan mengambil image di seluruh project, berikan peran Artifact Registry Writer ke akun layanan yang menjalankan build.
    • Secara default, Compute Engine, Cloud Run, dan Google Kubernetes Engine memiliki izin baca untuk repositori dalam project yang sama. Jika menggunakan alat pihak ketiga di lingkungan ini untuk mengirim image, Anda harus memberikan peran Artifact Registry Writer ke akun layanan runtime.
  4. Jika Artifact Registry menampilkan pesan The repository has enabled tag immutability, ketetapan tag akan dikonfigurasi untuk repositori. Anda tidak dapat mengirim image dengan tag yang sudah digunakan untuk versi lain dari image yang sama di repositori. Coba kirim kembali gambar dengan tag yang tidak digunakan oleh versi gambar yang disimpan lainnya.

    Untuk memastikan repositori dikonfigurasi untuk tag image yang tidak dapat diubah, periksa kolom Tag image yang tidak dapat diubah dalam daftar repositori di Google Cloud Console atau jalankan perintah berikut:

    gcloud artifacts repositories describe REPOSITORY
        --project=PROJECT-ID
        --location=LOCATION
    

Pesan ImagePullBackOff dan ErrImagePull

Pesan dengan ImagePullBackOff dan ErrImagePull menunjukkan bahwa image tidak dapat diambil dari registry oleh GKE.