如何在Kubernetes中添加或者删除标签到节点

时间:2020-03-05 15:31:09  来源:igfitidea点击:

当我们在实时环境上工作时,有时需要运行特定类型的工作负载(或者应用程序)指定的工人节点。

例如,生产工作负载应该在特定的工作者节点上运行,不应与暂存或者开发工作负载混合。

这是向节点添加标签的位置将有用。

让我向我们展示如何将标签添加到Kubernetes中的节点,更改标签并稍后删除这些标签。

如何在Kubernetes中读取节点标签

我们可以以这种方式列出Kubernetes节点详细信息以及他们的标签:

kubectl get nodes --show-labels

如果我们想知道特定节点的详细信息,请使用以下内容:

kubectl label --list nodes node_name
The labels are in form of key-value pair. They must begin with a letter or number, and Jan contain letters, numbers, hyphens, dots, and underscores, up to 63 characters each.

如何将标签分配给节点

现在假设我们希望"kWorker-rj1"节点托管所有生产相关的工作负载。

让我们用相应的名称标记该节点(如生产):

Hyman@theitroad:~# kubectl label nodes kworker-rj1 workload=production
node/kworker-rj1 labeled

确认POD标签:

Hyman@theitroad:~# kubectl label --list nodes kworker-rj1 | grep -i workload
workload=production

我使用grep命令用来杂草不必要的细节并专注于标签。

如何覆盖节点标签

如果我们稍后决定根据要求覆盖某些标签,请参阅如何实现这一目标。

Hyman@theitroad:~# kubectl label --overwrite nodes kworker-rj1 workload=staging
node/kworker-rj1 labeled

我们可以确认POD重新标记:

Hyman@theitroad:~# kubectl label --list nodes kworker-rj1 | grep -i workload
workload=staging

如何删除节点标签

要从节点中删除标签,请提供键而没有任何值。

Hyman@theitroad:~# kubectl label --overwrite nodes kworker-rj1 workload
node/kworker-rj1 labeled

我们可以确认节点标签删除:

Hyman@theitroad:~# kubectl label --list nodes kworker-rj1 | grep -i workload
Hyman@theitroad:~#