Pelajari langkah-langkah pemecahan masalah yang mungkin berguna jika Anda mengalami masalah saat mengelola image container di Artifact Registry.
Tidak dapat mengambil image atau men-deploy ke Google Cloud lingkungan runtime
Periksa hal-hal berikut:
- Pastikan jalur lengkap image yang Anda kirim sudah benar. Jalur harus menyertakan nama host registry, Google Cloud, project ID, repositori, dan image. Contoh:
Untuk informasi selengkapnya, lihat Nama repositori dan image.us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
- Pastikan akun yang mengambil image memiliki izin yang benar untuk membaca dari repositori. Jika telah menonaktifkan pemberian peran otomatis ke akun layanan, Anda harus memberikan peran Artifact Registry ke akun layanan runtime.
- Untuk akun layanan Compute Engine, Cloud Run, dan Google Kubernetes Engine,
Anda harus memberikan peran Pembaca Artifact Registry
(
roles/artifactregistry.reader
) ke akun layanan runtime. - Untuk akun layanan Cloud Build, Anda harus memberikan peran Artifact Registry Writer (
roles/artifactregistry.writer
) ke akun layanan yang menjalankan build. - Jika menggunakan Docker atau alat pihak ketiga lainnya, Anda harus:
- Berikan izin ke akun yang berinteraksi dengan repositori.
- Konfigurasikan klien untuk mengautentikasi ke repositori.
Tidak dapat mengirim image ke Artifact Registry
Coba langkah berikut untuk mengatasinya:
- Pastikan repositori ada. Tidak seperti Container Registry, pembuatan repositori adalah operasi terpisah dari pengiriman image pertama. Jika repositori tidak ada, buat repositori tersebut.
- Pastikan jalur lengkap image yang Anda kirim sudah benar. Jalur harus menyertakan nama host registry, Google Cloud project ID, repositori, dan image. Contoh:
us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
Setiap repositori Artifact Registry adalah resource terpisah, sehingga Anda tidak dapat mendorong image ke jalur tanpa repositori. Misalnya,
us-west1-docker.pkg.dev/my-project/my-image:v1
adalah jalur gambar yang tidak valid.Untuk mengetahui informasi selengkapnya, lihat Nama repositori dan image.
- Verifikasi bahwa akun yang mendorong image memiliki izin untuk menulis ke repositori. Jika Anda telah menonaktifkan pemberian peran otomatis ke akun layanan, Anda harus memberikan peran Artifact Registry ke akun layanan runtime.
- Untuk akun layanan Compute Engine, Cloud Run, dan Google Kubernetes Engine,
Anda harus memberikan peran Artifact Registry Writer
(
roles/artifactregistry.writer
) ke akun layanan runtime. - Untuk akun layanan Cloud Build, Anda harus memberikan peran Artifact Registry Writer (
roles/artifactregistry.writer
) ke akun layanan yang menjalankan build. - Jika Artifact Registry menampilkan pesan
The repository has enabled tag immutability
, immutability tag akan dikonfigurasi untuk repositori. Anda tidak dapat mendorong gambar dengan tag yang sudah digunakan untuk versi lain dari gambar yang sama di repositori. Coba kirim ulang gambar dengan tag yang tidak digunakan oleh versi gambar lain yang disimpan.Untuk memverifikasi bahwa repositori dikonfigurasi untuk tag image yang tidak dapat diubah, periksa kolom Immutable image tags dalam daftar repositori di konsol Google Cloud 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.
- Verifikasi persyaratan untuk mengambil dari Artifact Registry.
- Tinjau langkah-langkah pemecahan masalah dalam dokumentasi GKE.