k8s中节点node的ROLES值是<none>

注意

ROLES列对于的标签名是kubernetes.io/role

ROLES列对于的标签名是kubernetes.io/role

ROLES列对于的标签名是kubernetes.io/role

所以对ROLES列信息的操作,就是对标签名为kubernetes.io/role的操作。

如果ROLES列显示的是<none>,那就表示当前节点没有kubernetes.io/role标签

查询当前集群节点信息:

[root@master ~]# kubectl get no
NAME     STATUS   ROLES    AGE   VERSION
master   Ready    master   13d   v1.17.4
node1    Ready    <none>   13d   v1.17.4
node2    Ready    <none>   13d   v1.17.4
[root@master ~]# kubectl get no -o wide
NAME     STATUS   ROLES    AGE   VERSION   INTERNAL-IP      EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION                CONTAINER-RUNTIME
master   Ready    master   13d   v1.17.4   192.168.48.100   <none>        CentOS Linux 7 (Core)   3.10.0-1160.24.1.el7.x86_64   docker://20.10.6
node1    Ready    <none>   13d   v1.17.4   192.168.48.101   <none>        CentOS Linux 7 (Core)   3.10.0-1160.24.1.el7.x86_64   docker://20.10.6
node2    Ready    <none>   13d   v1.17.4   192.168.48.102   <none>        CentOS Linux 7 (Core)   3.10.0-1160.24.1.el7.x86_64   docker://20.10.6
[root@master ~]# kubectl get no -o wide --show-labels
NAME     STATUS   ROLES    AGE   VERSION   INTERNAL-IP      EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION                CONTAINER-RUNTIME   LABELS
master   Ready    master   13d   v1.17.4   192.168.48.100   <none>        CentOS Linux 7 (Core)   3.10.0-1160.24.1.el7.x86_64   docker://20.10.6    beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=master,kubernetes.io/os=linux,node-role.kubernetes.io/master=
node1    Ready    <none>   13d   v1.17.4   192.168.48.101   <none>        CentOS Linux 7 (Core)   3.10.0-1160.24.1.el7.x86_64   docker://20.10.6    beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node1,kubernetes.io/os=linux
node2    Ready    <none>   13d   v1.17.4   192.168.48.102   <none>        CentOS Linux 7 (Core)   3.10.0-1160.24.1.el7.x86_64   docker://20.10.6    beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node2,kubernetes.io/os=linux

master节点的ROLES列值是master,但node1与node2的ROLES列都是<none>。

我们可以通过"kubectl label"命令操作ROLES列的值。

在复习一下本文的重点核心:ROLES列对于的标签名是:kubernetes.io/role

1、增加 


[root@master ~]# kubectl label no node2 kubernetes.io/role=test-node
node/node2 labeled

[root@master ~]# kubectl get no
NAME     STATUS   ROLES       AGE   VERSION
master   Ready    master      13d   v1.17.4
node1    Ready    <none>      13d   v1.17.4
node2    Ready    test-node   13d   v1.17.4

如果你使用命令“ kubectl label no node1 roles=dev-pc”执行后的信息只在LABELS列中显示。

[root@master ~]# kubectl label no node1 roles=dev-pc
node/node1 labeled
[root@master ~]# kubectl get no
NAME     STATUS   ROLES       AGE   VERSION 
master   Ready    master      13d   v1.17.4
node1    Ready    <none>      13d   v1.17.4
node2    Ready    test-node   13d   v1.17.4
[root@master ~]# kubectl get no --show-labels
NAME     STATUS   ROLES       AGE   VERSION   LABELS
master   Ready    master      13d   v1.17.4   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=master,kubernetes.io/os=linux,node-role.kubernetes.io/master=
node1    Ready    <none>      13d   v1.17.4   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node1,kubernetes.io/os=linux,roles=dev-pc
node2    Ready    test-node   13d   v1.17.4   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node2,kubernetes.io/os=linux,kubernetes.io/role=test-node

2、修改

与修改标签一样,也要在命令后添加“--overwrite”选项。


node/node2 labeled
[root@master ~]# kubectl get no --show-labels
NAME     STATUS   ROLES        AGE   VERSION   LABELS
master   Ready    master       13d   v1.17.4   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=master,kubernetes.io/os=linux,node-role.kubernetes.io/master=
node1    Ready    <none>       13d   v1.17.4   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node1,kubernetes.io/os=linux,roles=dev-pc
node2    Ready    worksation   13d   v1.17.4   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node2,kubernetes.io/os=linux,kubernetes.io/role=worksation

3、查询

(1)查询角色是worksation的节点


[root@master ~]# kubectl get no -l kubernetes.io/role=worksation
NAME    STATUS   ROLES        AGE   VERSION
node2   Ready    worksation   13d   v1.17.4
[root@master ~]#

(2)查询没有kubernetes.io/role的节点

[root@master ~]# kubectl get no -l '!kubernetes.io/role'
NAME     STATUS   ROLES    AGE   VERSION
master   Ready    master   13d   v1.17.4
node1    Ready    <none>   13d   v1.17.4
[root@master ~]#

4、删除

删除ROLES列值的方式与删除label的方式是一样的,只需要在对于的标签名后增加一个减号“-”


[root@master ~]# kubectl label no node2 kubernetes.io/role-
node/node2 labeled

[root@master ~]# kubectl get no
NAME     STATUS   ROLES    AGE   VERSION
master   Ready    master   13d   v1.17.4
node1    Ready    <none>   13d   v1.17.4
node2    Ready    <none>   13d   v1.17.4

[root@master ~]# kubectl get no --show-labels
NAME     STATUS   ROLES    AGE   VERSION   LABELS
master   Ready    master   13d   v1.17.4   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=master,kubernetes.io/os=linux,node-role.kubernetes.io/master=
node1    Ready    <none>   13d   v1.17.4   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node1,kubernetes.io/os=linux,roles=dev-pc
node2    Ready    <none>   13d   v1.17.4   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node2,kubernetes.io/os=linux
[root@master ~]#

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值