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:

  1. / # kubectl get node --show-labels
  2. NAME STATUS ROLES AGE VERSION LABELS
  3. 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.