2015-07-08 13 views
12

Alcuni dei nostri contenitori funzionano meglio con la memoria sopra il tipo di istanza attualmente distribuito nel nostro cluster di Container Engine. Esiste una pratica consigliata per ricostruire il modello del motore del contenitore per le istanze più grandi dopo la creazione del cluster del motore del contenitore?Ridimensiona i tipi di istanza sul cluster di Container Engine

Ad esempio, passare da istanze GCE n1-standard-2 a n1-highmem-8 per l'esecuzione di contenitori con una RAM superiore a 8 GB?

risposta

17

Container Engine non dispone attualmente di un'API per fare ciò, ma poiché utilizza un valore Compute Engine instance group per i nodi nel cluster, è possibile aggiornarlo senza la necessità dell'aiuto di GKE. Nella Developers Console, copiare instance template simile a "gke--" e modificare il tipo di macchina al suo interno, quindi modificare il gruppo di istanze con nome simile per utilizzare il nuovo modello. Puoi trovare queste opzioni sotto Compute > Compute Engine > Instance templates e Compute > Compute Engine > Instance groups, rispettivamente.

+5

essere consapevoli del fatto che facendo un aggiornamento API si ripristinano i nodi alle specifiche precedenti. Ciò ha causato lo scambio delle mie applicazioni a causa della mancanza di memoria – Andre

+1

@Andre Che cosa intendi per aggiornamento dell'API? Google Cloud SDK o Kubernetes o qualcos'altro? – Johan

+1

> 'I cluster di contenitori gcloud aggiornano CLUSTER_NAME'. Delineato qui: https://cloud.google.com/container-engine/docs/clusters/upgrade – Andre

4
  • Creare un nuovo pool di nodi con un tipo di macchina personalizzato, dimensione del disco, num-node e con qualsiasi altro parametro richiesto.
  • Tutti i passaggi sono Google Container Engine GKE node pools.
6

Un approccio diverso potrebbe essere:

(1) per creare un nuovo nodo-pool al cluster GKE con tipi di macchine verticalmente scalate ...

$ gcloud container node-pools create pool-n1std2 --zone europe-west1-d --cluster prod-cluster-1 --machine-type n1-standard-2 --image-type gci --disk-size=250 --num-nodes 3 

(2) poi, migrare i carichi di lavoro fuori vecchi nodi ...

$ kubectl drain gke-prod-cluster-1-default-pool-f1eabad5-9ml5 --delete-local-data --force 

(3) e, infine, per eliminare il vecchio nodo-pool

$ gcloud container node-pools delete default-pool --cluster=prod-cluster-1 

Note:

  • Attenzione: Step 2 elimina nodi volumi locali come emptyDir !!!
  • Fase 2 deve essere ripetuta per ciascun nodo nella piscina
  • Invece di drenaggio di nodi, si potrebbe configurare una vera e propria nodeSelector per programmare i baccelli sulla nuova piscina. L'etichetta da abbinare sarebbe cloud.google.com/gke-nodepool: pool-n1std2
Problemi correlati