פתרון בעיות בקובצי אימג' של קונטיינרים

במאמר הזה מוסבר על שלבים לפתרון בעיות שיכולים לעזור לכם אם נתקלתם בבעיות בניהול קובצי אימג' של קונטיינרים ב-Artifact Registry.

תחביר של מזהה הפרויקט ב-Docker CLI

בגלל האופן שבו Docker מתייחס לנקודתיים, כשמשתמשים ב-Docker CLI, צריך להחליף את הנקודתיים (:) במזהה הפרויקט בלוכסן (/). לדוגמה, אם מזהה הפרויקט הוא s3ns:my-project, צריך להשתמש ב-s3ns/my-project.

‫Invalid Docker string אחרי הפקודה gcloud artifacts

אם מופיעה שגיאת dial tcp: lookup <var>REGION</var>: no such host אחרי שמריצים פקודת gcloud artifacts, צריך לוודא שמשתמשים בנקודת קצה עם אזור ספציפי, כמו u-france-east1-docker.s3nsregistry.fr. ב-Google Cloud CLI אין תמיכה בשימוש רק ב-docker.s3nsregistry.fr כנקודת קצה.

אי אפשר לשלוף תמונה או לפרוס אותה בסביבת זמן ריצה Cloud de Confiance by S3NS

כדאי לבדוק את הדברים הבאים:

  1. מוודאים שהנתיב המלא של התמונה שאתם דוחפים נכון. הנתיב חייב לכלול את שם המחשב המארח של המאגר, Cloud de Confiance by S3NS, מזהה הפרויקט, המאגר והתמונה. לדוגמה:
    ‫
    u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/my-image:v1
    מידע נוסף זמין במאמר שמות של מאגרי תמונות ותמונות.
  2. מוודאים שלחשבון שממנו נמשכת התמונה יש את ההרשאות הנכונות לקריאה מהמאגר. אם השבתתם את ההקצאה האוטומטית של תפקידים לחשבונות שירות, אתם צריכים להקצות תפקידים ב-Artifact Registry לחשבונות השירות של זמן הריצה.

אי אפשר לשלוח תמונה ל-Artifact Registry

נסו:

  1. מוודאים שהנתיב המלא של התמונה שאתם דוחפים נכון. הנתיב צריך לכלול את שם המארח של המאגר, את מזהה הפרויקט Cloud de Confiance by S3NS , את המאגר ואת התמונה. לדוגמה:
    u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/my-image:v1
      

    כל מאגר ב-Artifact Registry הוא משאב נפרד, ולכן אי אפשר לשלוח תמונה לנתיב ללא מאגר. לדוגמה, ‫u-france-east1-docker.s3nsregistry.fr/my-project/my-image:v1 הוא נתיב תמונה לא תקין.

    מידע נוסף זמין במאמר בנושא שמות של מאגרי תמונות ותמונות.

  2. מוודאים שלחשבון שממנו מתבצעת ההעלאה של האימג' יש הרשאות כתיבה למאגר. אם השבתתם את ההקצאה האוטומטית של תפקידים לחשבונות שירות, אתם צריכים להקצות תפקידים ב-Artifact Registry לחשבונות השירות של זמן הריצה.
    • בחשבונות שירות של Compute Engine ו-Google Kubernetes Engine, צריך להקצות את התפקיד Artifact Registry Writer ‏(roles/artifactregistry.writer) לחשבון השירות של זמן הריצה.
  3. אם Artifact Registry החזיר את ההודעה The repository has enabled tag immutability, המשמעות היא שהמאפיין tag immutability מוגדר למאגר. אי אפשר לשלוח תמונה עם תג שכבר נמצא בשימוש בגרסה אחרת של אותה תמונה במאגר. נסו לשלוח את התמונה שוב עם תג שלא נמצא בשימוש בגרסאות אחרות של התמונה שמאוחסנות.

    כדי לוודא שהמאגר מוגדר לתגי תמונות בלתי ניתנים לשינוי, בודקים את העמודה Immutable image tags ברשימת המאגרים ב- Cloud de Confiance console או מריצים את הפקודה הבאה:

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

ההודעות ImagePullBackOff ו-ErrImagePull

ההודעות עם ImagePullBackOff ו-ErrImagePull מציינות ש-GKE לא יכול לשלוף תמונה מהמאגר.