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

当您在实时环境中工作时,有时您希望在指定的工作节点上运行特定类型的工作负载(或应用程序)。

为了 example,生产工作负载应该在特定的工作节点上运行,并且不应该与暂存或开发工作负载混合。

这就是为节点添加标签的地方。

让我向您展示如何为节点添加标签 Kubernetes,更改标签并稍后删除这些标签。

如何在 Kubernetes 中读取节点标签

您可以按以下方式列出 Kubernetes 节点详细信息及其标签:

kubectl get nodes --show-labels

如果您想了解特定节点的详细信息,请使用以下命令:

kubectl label --list nodes node_name

标签采用键值对的形式。 它们必须以字母或数字开头,并且可以包含字母、数字、连字符、点和下划线,每个最多 63 个字符。

如何为节点分配标签

现在假设你想要 kworker-rj1 节点来托管所有与生产相关的工作负载。

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

[email protected]:~# kubectl label nodes kworker-rj1 workload=production
node/kworker-rj1 labeled

确认 pod 标签:

[email protected]:~# kubectl label --list nodes kworker-rj1 | grep -i workload
workload=production

我使用 grep 命令清除不必要的细节并专注于标签。

如何覆盖节点标签

如果您稍后决定根据要求覆盖某些标签,请查看如何实现。

[email protected]:~# kubectl label --overwrite nodes kworker-rj1 workload=staging
node/kworker-rj1 labeled

您可以确认 pod 重新标记:

[email protected]:~# kubectl label --list nodes kworker-rj1 | grep -i workload
workload=staging

如何删除节点标签

要从节点中删除标签,请提供不带任何值的键。

[email protected]:~# kubectl label --overwrite nodes kworker-rj1 workload-
node/kworker-rj1 labeled

您可以确认删除节点标签:

[email protected]:~# kubectl label --list nodes kworker-rj1 | grep -i workload
[email protected]:~#

就这样! 希望您通过本教程熟悉 kubectl label 命令。

拉克什耆那教
DevOps 专业 | RHCA | 詹金斯 | 吉特 | 码头工人 | Kubernetes | 稳定 | 普罗米修斯 | 格拉法纳 | AWS Cloud