2016-02-19 8 views
11

Ich habe einen Google Container Engine-Cluster mit 21 Knoten, es gibt insbesondere einen Pod, der immer auf einem Knoten mit einer statischen IP-Adresse ausgeführt werden muss (für ausgehende Zwecke).DaemonSets auf Google Container Engine (Kubernetes)

Kubernetes unterstützt DaemonSets

Dies ist eine Möglichkeit, eine Hülse an einen bestimmten Knoten (oder in einem Satz von Knoten) eingesetzt haben, wird von dem Knoten ein Etikett gibt, das die in dem nodeSelector DaemonSet einstimmt. Sie können dann der VM-Instanz, auf der sich der markierte Knoten befindet, eine statische IP zuweisen. GKE scheint jedoch die DaemonSet-Art nicht zu unterstützen.

$ 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"] 

Wann wird diese Funktionalität unterstützt und was sind die Problemumgehungen?

Antwort

5

Wenn Sie den Pod nur auf einem einzelnen Knoten ausführen möchten, möchten Sie eigentlich kein DaemonSet verwenden. DaemonSets sind für die Ausführung eines Pods unter alle Knoten ausgelegt, nicht ein einzelner spezifischer Knoten.

Um einen Pod auf einem bestimmten Knoten auszuführen, können Sie einen NodeSelector in der Pod-Spezifikation verwenden, wie in Node Selection example in the docs dokumentiert.


edit: Aber für jeden der Lektüre dieses, das etwas auf jedem Knoten in GKE laufen will, gibt es zwei Dinge, die ich sagen kann:

Zunächst wird DaemonSet in GKE in der Version 1.2 freigegeben werden, was für März geplant ist. Es ist in GKE in Version 1.1 nicht aktiviert, da es zum Zeitpunkt 1.1 noch nicht als stabil angesehen wurde. Wenn Sie auf jedem Knoten vor Ausführung von 1.2 etwas ausführen möchten, sollten Sie einen Replikations-Controller mit einer Anzahl von Replikaten erstellen, die größer ist als die Anzahl der Knoten, und in der Container-Spezifikation nach hostPort fragen. Die hostPort stellt sicher, dass nicht mehr als ein Pod vom RC pro Knoten ausgeführt wird.

0

DaemonSets ist immer noch Alpha-Funktion und Google Container Engine unterstützt nur Produktion Kubernetes Funktionen. Umgehung: Erstellen Sie Ihren eigenen Kubernetes-Cluster (GCE, AWS, Bare-Metal, ...) und aktivieren Sie die Alpha/Beta-Funktionen.