Kubernetes Borg/Omega history topic 2: Borg had Machine key/value attributes that could be used in scheduling constraints. Borgmon had target labels to convey application topology, environment, and locale. But Jobs themselves didn't originally have k/v labels.
-
-
It was clear that load balancers, monitoring systems, and release, rollout, and configuration tools needed common support for identifying attributes that could flow through the entire lifecycle of an application. However, single-value tags, as in gmail and GCE, were missing types
Show this thread -
Thus, in mid 2013, we proposed key/value labels, for both Borg and Google Cloud, to facilitate higher-level application management. Of course, it was much easier to incorporate them into a greenfield project like Kubernetes, which had labels from the beginning.
Show this thread -
Label selector semantics were designed originally for the monitoring system. Monitoring and load-balancing systems wanted to ensure that non-overlapping queries could be constructed. Without disjunction, a common key with different values ensures two selectors don't overlap
Show this thread -
Selectors are also simple enough they could be reverse-indexed, which could be used by watch to find outstanding queries matching labels of a new/changed resource instance. But we haven't implemented this yet in K8s (http://issues.k8s.io/4817 )
Show this thread -
Another thing we haven't implemented yet that SREs asked for in the original design is a way to default, require, prohibit, and validate label keys and values:http://issues.k8s.io/15390
Show this thread
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.