5

Sono riuscito a creare un cluster di container di Google nella console degli sviluppatori e ho implementato la mia app su di esso. Tutto inizia bene, tuttavia trovo che non riesco a connettermi a Cloud SQL, ho capito;Modifica dei permessi del cluster di Google Container Engine

"Error: Handshake inactivity timeout" 

Dopo un po 'di scavo, non avevo avuto alcun problemi di connessione al database da App Engine o mia macchina locale così ho pensato che questo era un po' strano. Fu allora che ho notato i permessi del cluster ...

Quando seleziono il mio cluster, vedo quanto segue;

Permissions 

User info   Disabled 
Compute    Read Write 
Storage    Read Only 
Task queue   Disabled 
BigQuery   Disabled 
Cloud SQL   Disabled 
Cloud Datastore  Disabled 
Cloud Logging  Write Only 
Cloud Platform  Disabled 

speravo davvero di utilizzare sia Cloud Storage e Cloud SQL nei miei nodi contenitore del motore. Ho autorizzato l'accesso a ciascuna di queste API nelle impostazioni del mio progetto e l'istanza di Cloud SQL accetta connessioni da qualsiasi IP (ho già eseguito Node in una macchina virtuale gestita su App Engine in precedenza), quindi penso che Google stia disabilitando esplicitamente queste API.

Quindi la mia domanda in due parti è;

  • Esiste un modo per modificare queste autorizzazioni?
  • C'è qualche buona ragione per cui queste API sono disabilitate? (Presumo che ci sia)

Qualsiasi aiuto molto apprezzato!

risposta

9

Le autorizzazioni sono definite dagli account di servizio collegati alle macchine virtuali nodo durante la creazione del cluster (gli account di servizio non possono essere modificati dopo l'istanza di una macchina virtuale, quindi questo è l'unico momento in cui è possibile selezionare le autorizzazioni).

Se si utilizza la console cloud, fare clic sul collegamento "Altro" nella pagina di creazione del cluster e verrà visualizzato un elenco di autorizzazioni che è possibile aggiungere ai nodi del cluster (tutte le impostazioni predefinite su disattivato). Attiva le opzioni che desideri e dovresti visualizzare le autorizzazioni appropriate dopo la creazione del cluster.

Se si utilizza la riga di comando per creare il cluster, passare il comando --scopes a gcloud container clusters create per impostare gli ambiti dell'account di servizio appropriato sulle macchine virtuali del nodo.

+0

Quali sono le opzioni per aggiungere un'autorizzazione a un cluster esistente? Devo abilitare Google Storage. Devo creare una nuova autorizzazione e migrato il cluster esistente? – Gajus

+0

Come dice CJ di seguito, è possibile aggiungere autorizzazioni a un nuovo pool di nodi. Se si desidera modificare le autorizzazioni su ciascun nodo nel cluster, creare un nuovo pool di nodi, migrare i carichi di lavoro e quindi eliminare il pool di nodi originale. –

+0

MODIFICA: a partire da agosto 2017 è possibile aggiornare gli ambiti dell'account di servizio sulle istanze in esecuzione. Vedere https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances#changeserviceaccountandscopes –

11

Con nodo del pool, è possibile sorta di aggiungere ambiti a un cluster che esegue con la creazione di una nuova piscina nodo con gli scopi desiderati (e quindi l'eliminazione di quello vecchio):

gcloud container node-pools create np1 --cluster $CLUSTER --scopes $SCOPES 
gcloud container node-pools delete default-pool --cluster $CLUSTER