How to set label to Kubernetes node at creation time?

kubernetes

Solution

This answer is now incorrect (and has been for several versions of Kubernetes). Please see the correct answer by Radek 'Goblin' Pieczonka

There are a few options available to you. The easiest IMHO would be to use a systemd unit to install and configure kubectl, then run the `kubectl label` command. Alternatively, you could just use `curl` to update the labels in the node's metadata directly.

That being said, while I don't know your exact use case, the way you are using the labels on the nodes seems to be an effort to bypass some of Kubernetes key features, like dynamic scheduling of components across nodes. I would suggest rather than work on labeling the nodes automatically that you try to address why you need to identify the nodes in the first place.

Problem

I am following up guide [1] to create multi-node K8S cluster which has 1 master and 2 nodes. Also, a label needs to set to each node respectively. ``` Node 1 - label name=orders Node 2 - label name=payment ``` I know that above could be achieved running kubectl command ``` kubectl get nodes kubectl label nodes <node-name> <label-key>=<label-value> ``` But I would like to know how to set label when creating a node. Node creation guidance is in [2]. Appreciate your input. [1] https://coreos.com/kubernetes/docs/latest/getting-started.html [2] https://coreos.com/kubernetes/docs/latest/deploy-workers.html

Original source