2016-02-19 28 views
11

Ho un cluster di Google Container Engine con 21 nodi, in particolare un pod che devo essere sempre in esecuzione su un nodo con un indirizzo IP statico (per scopi di uscita).DaemonSet su Google Container Engine (Kubernetes)

kubernetes supporta DaemonSets

Questo è un modo per avere un baccello essere distribuito a un nodo specifico (o in un insieme di nodi) dando il nodo un'etichetta che corrisponde al nodeSelector nel DaemonSet. È quindi possibile assegnare un IP statico all'istanza VM su cui si trova il nodo etichettato. Tuttavia, GKE non sembra supportare il tipo DaemonSet.

$ kubectl create -f go-daemonset.json 
error validating "go-daemonset.json": error validating data: the server could not find the requested resource; if you choose to ignore these errors, turn validation off with --validate=false 

$ kubectl create -f go-daemonset.json --validate=false 
unable to recognize "go-daemonset.json": no kind named "DaemonSet" is registered in versions ["" "v1"] 

Quando sarà supportata questa funzionalità e quali sono le soluzioni alternative?

risposta

5

Se si desidera eseguire il pod su un singolo nodo, in realtà non si desidera utilizzare un DaemonSet. DaemonSet sono progettati per l'esecuzione di un pod su ogni nodo, non un singolo nodo specifico.

Per eseguire un pod su un nodo specifico, è possibile utilizzare un nodeSelector nella specifica del pod, come documentato nello Node Selection example in the docs.


edit: ma per chiunque leggendo questo che non vuole eseguire qualcosa su ogni nodo GKE, ci sono due cose che posso dire:

In primo luogo, DaemonSet saranno abilitati a GKE nella versione 1.2, che è previsto per marzo. Non è abilitato in GKE nella versione 1.1 perché non è stato considerato abbastanza stabile al momento in cui 1.1 è stato tagliato.

In secondo luogo, se si desidera eseguire qualcosa su ogni nodo prima dell'uscita di 1.2, si consiglia di creare un controller di replica con un numero di repliche maggiore del numero di nodi e di richiedere uno hostPort nella specifica del contenitore. Lo hostPort assicurerà che non venga eseguito più di un pod da RC per nodo.

0

DaemonSets è ancora una funzione alpha e Google Container Engine supporta solo le funzioni di produzione di Kubernetes. Soluzione: crea il tuo cluster Kubernetes (GCE, AWS, bare metal, ...) e abilita le funzionalità alpha/beta.

Problemi correlati