2016-03-10 9 views
10

Von einer VM in GCE, ich habe folgendes403 "Request hatte unzureichende Authentifizierung Tive" während gcloud Container Cluster get-Anmeldeinformationen

gcloud auth activate-service-account --key-file <blah> 
# "blah" is a service account key file (JSON) I generated from the web interface 
gcloud config set project <project-name> 
gcloud config set compute/zone <zone-name> 
gcloud set container/cluster <cluster-name> 

Dann, als ich versuchte

gcloud container clusters get-credentials <cluster-name> 

und es zu laufen fehlgeschlagen mit der Fehlermeldung:

Die VM befindet sich im selben Netzwerk wie der GKE-Cluster. Ich versuchte das gleiche, mit der gleichen Service-Account-Schlüsseldatei von einem Rechner außerhalb von GCE, gegen einen GKE-Cluster im "Standard" -Netzwerk und es war erfolgreich ...

Bitte beraten.

Antwort

19

Um die Google Kubernetes Engine API von einer GCE virtuellen Maschine zu verwenden, müssen Sie den Cloud-Plattformbereich ("https://www.googleapis.com/auth/cloud-platform") zu Ihrer VM hinzufügen, wenn sie erstellt wird.

+0

wie geht das? – twoface88

+2

Wenn Sie die Befehlszeile verwenden, machen Sie etwas wie 'gcloud compute instances create NAME --scopes = https: // www.googleapis.com/auth/cloud-platform'. Wenn Sie die Cloud-Konsole verwenden, suchen Sie beim Erstellen einer VM nach dem Abschnitt "Identität und API-Zugriff" und wählen Sie "Vollständigen Zugriff auf alle Cloud-APIs zulassen" aus. –

+0

@RobertBailey Danke für die Anweisungen, wirklich hilfreich. Aber warum müssen wir vollständigen Zugriff auf alle Cloud-APIs bereitstellen? Welche Idee, welche API in der Cloud-Konsole aufgeführt ist, ermöglicht die CloudKMS-Operationen? –