2

Ich versuche über Jenkins, ein Bild in das Container-Repository zu pushen. Es wurde zunächst arbeiten, aber jetzt habe ichGoogle Cloud Jenkins gcloud Push-Zugriff verweigert

docker -- push gcr.io/xxxxxxx-yyyyy-138623/myApp:master.1 
The push refers to a repository [gcr.io/xxxxxxx-yyyyy-138623/myApp] 
bdc3ba7fdb96: Preparing 
5632c278a6dc: Waiting 
denied: Access denied. 

"Zugriff verweigert" die Jenkinsfile wie folgt aussehen:

sh("gcloud docker --authorize-only") 
    sh("docker -- push gcr.io/xxxxxxx-yyyyy-138623/hotelpro4u:master.1") 

Bemerkungen:

Ich bin fest, während 12 Stunden .... Ich brauche Hilfe

Antwort

2

Dieser Fehler bedeutet, dass der GKE-Knoten nicht auf die GCS Eimer zu schieben ist berechtigt, die Ihr Repository sichern.

Dies könnte daran liegen:

  1. Der Cluster nicht die richtigen Bereiche zu GCS authentifizieren muss. Haben Sie den Cluster mit --scopes storage-rw erstellt?
  2. Das Dienstkonto, für das der Cluster ausgeführt wird, verfügt nicht über Berechtigungen für den Bucket. Überprüfen Sie die IAM & Admin section in Ihrem Projekt, um sicherzustellen, dass das Dienstkonto die erforderliche Rolle hat.
+0

Ich löschte alle meine Projekt und tun es noch einmal, aber ich denke, Ihre Antwort ist richtig. Vielen Dank – Xero

+0

@CJ Cullen, Was sind die notwendigen Rollen, die ich im IAM & Admin Bereich sehen soll? – fay

0

Aufbauend auf @ cj-Cullens Antwort oben, haben Sie zwei Möglichkeiten:

  1. den Knoten Pool zerstören und dann, vom CLI, neu erstellen mit dem fehlenden https://www.googleapis.com/auth/projecthosting,storage-rw Umfang. Die GKE-Konsole kann die Standardbereiche beim Erstellen eines Knotenpools über die Konsole nicht ändern.

  2. Stoppen Sie jede Instanz in Ihrem Cluster. Klicken Sie in der Konsole auf die Schaltfläche Bearbeiten für die Instanz. Sie sollten jetzt in der Lage sein, den entsprechenden Bereich https://www.googleapis.com/auth/projecthosting,storage-rw hinzuzufügen.