Xen-Schleim für Kubernetes-Nodes

Eine sehr kleine Kubernetes-Metapher für Entwickler, die bei 'tainted nodes' sofort an Half-Life-Kontaminationswarnungen denken.

In Kubernetes klingt ein tainted node wie etwas aus Half-Life.

Man kann die Black-Mesa-Durchsage fast hören:

Warnung. Xen-Kontamination erkannt.

Aber die Idee ist weniger mystisch als der Name. Ein taint ist eine Markierung an einem Node, die sagt: Nicht jeder Pod darf hierher.

Stell dir einen Cluster-Node vor, bedeckt mit radioaktivem Alien-Schleim. Normale Pods sollten dort nicht platziert werden. Sie haben nicht den richtigen Schutz. Aber ein spezieller Pod kann so etwas wie einen HEV-Anzug tragen: eine toleration.

Der taint sagt:

Dieser Ort ist gefährlich, speziell oder reserviert.

Die toleration sagt:

Ich weiß. Ich komme damit klar.

Das ist die Beziehung. Der taint zieht den Pod nicht hinein. Er ist kein Magnet. Er ist eher ein Warnschild, ein Abwehrfeld oder eine Xen-Kontaminationsmarkierung. Kubernetes schaut sich den Pod an und fragt: Toleriert dieser Workload diese Bedingung?

Wenn ja, darf er dort eingeplant werden.

Wenn nein, bleibt er weg.

Diese Unterscheidung ist wichtig. Wenn du "diesen Pod auf solche Nodes setzen" willst, denkst du meistens an Labels, Selectors oder Affinity. Bei Taints und Tolerations geht es zuerst um Ausschluss. Sie schützen Nodes vor gewöhnlichen Workloads, außer diese Workloads melden sich ausdrücklich dafür an.

Wenn also jemand sagt: "the nodes are tainted", höre ich:

Black Mesa hat diese Maschinen als unsicher, speziell oder reserviert markiert. Nur Pods mit dem richtigen Resistenzmodul dürfen eintreten.

Was irgendwie zugleich sehr Kubernetes und sehr Half-Life ist.


Kommentare

Boris D. Teoharov

Autor

Hallo, ich bin Boris

Ich bin kein Schriftsteller. Ich bin kein Philosoph. Ich bin nur ein Backend-Engineer aus Bulgarien, irgendwo zwischen Laravel-Queues und Indizes mit Hunderten Millionen Zeilen.