Fehlerbehebung bei Container-Images

Hier finden Sie nützliche Informationen über die schrittweise Fehlerbehebung in Verbindung mit 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 übertragen, korrekt ist. Der Pfad muss den Registry-Hostnamen, die Google Cloud-Projekt-ID, das Repository und das Image enthalten. Beispiel:

    us-east1-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, Berechtigungen zum Lesen aus dem Repository hat.

    • Das Cloud Build-Standarddienstkonto hat Lese- und Schreibberechtigungen für Repositories im selben Google Cloud-Projekt. Wenn Sie ein vom Nutzer bereitgestelltes Dienstkonto verwenden oder Images projektübergreifend hochladen und abrufen, weisen Sie dem Dienstkonto, das Builds ausführt, die Rolle "Artifact Registry-Autor" zu.
    • Compute Engine, Cloud Run und Google Kubernetes Engine haben standardmäßig Leseberechtigungen für Repositories im selben Projekt. Wenn sich Artifact Registry in einem anderen Projekt als die Laufzeitumgebung befindet, müssen Sie dem Laufzeitdienstkonto die Rolle "Artifact Registry-Leser" zuweisen.
    • Wenn Sie Docker oder ein anderes Drittanbietertool verwenden, müssen Sie:

Image kann nicht in Artifact Registry übertragen werden

Prüfen Sie Folgendes:

  1. Prüfen Sie, ob das Repository vorhanden ist. Im Gegensatz zu Container Registry ist die Repository-Erstellung ein separater Vorgang und überträgt das erste Image nicht per Push. Wenn das Repository nicht vorhanden ist, erstellen Sie es.

  2. Prüfen Sie, ob der vollständige Pfad des Images, das Sie übertragen, korrekt ist. Der Pfad muss den Registry-Hostnamen, die Google Cloud-Projekt-ID, das Repository und das Image enthalten. Beispiel:

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

    Jedes Artifact Registry-Repository ist eine separate Ressource. Daher können Sie ein Image nicht per Push in einen Pfad ohne Repository übertragen. Beispielsweise ist us-east1-docker.pkg.dev/my-project/my-image:v1 ein ungültiger Image-Pfad.

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

  3. Prüfen Sie, ob das Konto, das das Image per Push überträgt, Berechtigungen zum Schreiben in das Repository hat.

    • Das Cloud Build-Standarddienstkonto hat Lese- und Schreibberechtigungen für Repositories im selben Google Cloud-Projekt. Wenn Sie ein vom Nutzer bereitgestelltes Dienstkonto verwenden oder Images projektübergreifend hochladen und abrufen, weisen Sie dem Dienstkonto, das Builds ausführt, die Rolle "Artifact Registry-Autor" zu.
    • Compute Engine, Cloud Run und Google Kubernetes Engine haben standardmäßig Leseberechtigungen für Repositories im selben Projekt. Wenn Sie in diesen Umgebungen ein Drittanbieter-Tool verwenden, um Images per Push zu übertragen, müssen Sie dem Laufzeitdienstkonto die Rolle "Artifact Registry-Autor" zuweisen.

ImagePullBackOff- und ErrImagePull-Nachrichten

Nachrichten mit ImagePullBackOff und ErrImagePull zeigen an, dass GKE keine Registrierung aus der Registry abrufen kann.