Probleme mit Container-Images beheben

Hier finden Sie nützliche Informationen über die schrittweise Fehlerbehebung bei Problemen mit der Verwaltung von Container-Images in Artifact Registry.

Image kann nicht abgerufen oder in einer Google Cloud -Laufzeitumgebung bereitgestellt werden

Prüfen Sie Folgendes:

  1. Prüfen Sie, ob der vollständige Pfad des Images, das Sie pushen, korrekt ist. Der Pfad muss den Hostnamen der Registry, Google Cloud, die Projekt-ID, das Repository und das Image enthalten. Beispiel:
    us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
    Weitere Informationen finden Sie unter Repository- und Image-Namen.
  2. Prüfen Sie, ob das Konto, das das Image abruft, die richtigen Berechtigungen zum Lesen aus dem Repository hat. Wenn Sie die automatische Rollenzuweisung für Dienstkonten deaktiviert haben, müssen Sie den Laufzeitdienstkonten Rollen für die Artifact Registry zuweisen.

Image kann nicht in Artifact Registry hochgeladen werden

Geben Sie Folgendes ein:

  1. Prüfen Sie, ob das Repository vorhanden ist. Im Gegensatz zu Container Registry ist das Erstellen eines Repositories ein separater Vorgang, der vom Pushen des ersten Images getrennt ist. Wenn das Repository nicht vorhanden ist, erstellen Sie es.
  2. Prüfen Sie, ob der vollständige Pfad des Images, das Sie pushen, korrekt ist. Der Pfad muss den Hostnamen der Registry, die Google Cloud -Projekt-ID, das Repository und das Image enthalten. Beispiel:
    us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
      

    Jedes Artifact Registry-Repository ist eine separate Ressource. Sie können also kein Image ohne Repository auf einen Pfad pushen. us-west1-docker.pkg.dev/my-project/my-image:v1 ist beispielsweise ein ungültiger Bildpfad.

    Weitere Informationen finden Sie unter Repository- und Image-Namen.

  3. Prüfen Sie, ob das Konto, das das Image pusht, Berechtigungen zum Schreiben in das Repository hat. Wenn Sie die automatische Rollenzuweisung für Dienstkonten deaktiviert haben, müssen Sie den Laufzeitdienstkonten Rollen für die Artifact Registry zuweisen.
    • Bei Compute Engine-, Cloud Run- und Google Kubernetes Engine-Dienstkonten müssen Sie dem Dienstkonto der Laufzeit die Rolle „Artifact Registry Writer“ (roles/artifactregistry.writer) gewähren.
    • Sie müssen dem Cloud Build-Dienstkonto die Rolle „Artifact Registry-Autor“ (roles/artifactregistry.writer) für das Dienstkonto zuweisen, das Builds ausführt.
  4. Wenn Artifact Registry die Nachricht The repository has enabled tag immutability zurückgegeben hat, ist die Unveränderlichkeit von Tags für das Repository konfiguriert. Sie können kein Bild mit einem Tag pushen, das bereits für eine andere Version desselben Bildes im Repository verwendet wird. Versuchen Sie, das Bild noch einmal mit einem Tag zu pushen, das von anderen gespeicherten Versionen des Bildes nicht verwendet wird.

    Prüfen Sie, ob ein Repository für unveränderliche Image-Tags konfiguriert ist. Sehen Sie dazu in der Liste der Repositories in der Google Cloud -Console in der Spalte Immutable image tags nach oder führen Sie den folgenden Befehl aus:

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

Nachrichten vom Typ „ImagePullBackOff“ und „ErrImagePull“

Nachrichten mit ImagePullBackOff und ErrImagePull geben an, dass ein Image nicht von GKE aus der Registry abgerufen werden kann.