Skip to content

Configuration options for worker nodes#

Currently k0s worker command does not take in any special yaml configuration. There still is ways how to configure the workers, the following chapters provide instructions for ways you can configure how the worker runs various components.

Node labels#

k0s worker command accepts --labels flag with which you can make the newly joined worker node the register itself in the Kubernetes API with the given set of labels.

So for example when running the worker with k0s worker --token-file k0s.token --labels="k0sproject.io/foo=bar,k0sproject.io/other=xyz" will result in:

/ # kubectl get node --show-labels
NAME      STATUS     ROLES    AGE   VERSION        LABELS
worker0   NotReady   <none>   10s   v1.20.2-k0s1   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,k0sproject.io/foo=bar,k0sproject.io/other=xyz,kubernetes.io/arch=amd64,kubernetes.io/hostname=worker0,kubernetes.io/os=linux

Note: Setting the labels is only effective on the first registration of the node and changing them afterwards has no effect.

Kubelet args#

k0s worker command accepts a generic flag to pass in any set of argument for kubelet process.

For example running k0s worker --token-file=k0s.token --kubelet-extra-args="--node-ip=1.2.3.4 --address=0.0.0.0" will "pass on" the given flags to kubelet as-is. As the flags are passed as-is make sure you are passing in properly formatted and valued flags as k0s will NOT validate those at all.