2016-05-13 12 views
1

Stellen Sie sich diese hypothetische Situation (das hat mich gebissen nur in der Praxis):Kubernetes DNS-Pod-Rennen Benutzerebene Schoten in donnernde Herde Szenario

  1. Alle Arbeiter-Instanzen in einem Kubernetes Cluster Form (sagen aufgrund eines Spotpreisschwankungen) und eine neue kommt automatisch zurück.
  2. Der Scheduler versucht dann, Pods auf dem Knoten in beliebiger Reihenfolge zu planen, aber sie können nicht alle passen, da die Anzahl der Knoten kleiner ist als zuvor.
  3. Alle default Namespace Schoten machen es auf, aber der kube-system Namespace DNS-Pod nicht
  4. Jetzt versuchen fast alles auf dem Cluster laufen aufgehängt ist, weil es auf dem Cluster kein DNS ist.

Gibt es eine Möglichkeit die QoS-Ebene in Kubernetes zu verwenden, den Scheduler zu bekommen, um proritize Planung die kube-system Schoten vor dem anderen Namespaces? Oder gibt es eine andere Möglichkeit, dieses Problem zu beheben?

Antwort

1

Dies ist ein echtes Problem, und Kubernetes hat noch keine Pod QoS Garantien.

Um vollkommen sicher zu sein, sollte Ihr Cluster groß genug sein, um jede erwartete Clusterschrumpfung zu bewältigen, aber das ist nicht immer praktisch.

Im Moment wäre es wahrscheinlich am einfachsten, die konkurrierenden Bereitstellungen mit niedrigerer Priorität manuell zu reduzieren, um einen Cluster wieder funktionsfähig zu machen.

Es gibt Arbeit, die versucht wird, Pod QoS-Richtlinien in Kubernetes zu bekommen. Sie können entlang folgen https://github.com/kubernetes/kubernetes/pull/14943