在某些特殊情况下,需要将某些服务固定在一台宿主机上, k8s可以使用label给node节点打上标签来满足这种需求.
Label添加删除和修改
添加label语法
kubectl label nodes <node-name> <label-key>=<label-value>
删除label语法
kubectl label nodes <node-name> <label-key>-
修改Label的值
语法: 需要加上--overwrite
参数
kubectl label nodes <node-name> <label-key>=<label-value> --overwrite
查看现有node及label
root@server01:~# kubectl get node --show-labels
NAME STATUS ROLES AGE VERSION LABELS
192.168.174.135 Ready <none> 220d v1.9.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.174.135
192.168.174.136 Ready <none> 220d v1.9.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.174.136
192.168.174.137 Ready <none> 220d v1.9.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.174.137
添加一个key为label-test和value为label-test的label
root@server01:~# kubectl label node 192.168.174.135 label-test=label-test
node "192.168.174.135" labeled
查看是否被添加
root@server01:~# kubectl get node --show-labels
NAME STATUS ROLES AGE VERSION LABELS
192.168.174.135 Ready <none> 220d v1.9.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.174.135,label-test=label-test
192.168.174.136 Ready <none> 220d v1.9.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.174.136
192.168.174.137 Ready <none> 220d v1.9.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.174.137
删除label
root@server01:~# kubectl label node 192.168.174.135 label-test-
node "192.168.174.135" labeled
修改Label的值
语法: 需要加上--overwrite
参数
kubectl label nodes <node-name> <label-key>=<label-value> --overwrite
root@server01:~# kubectl label node 192.168.174.135 label_key=label_value
node "192.168.174.135" labeled
root@server01:~#
root@server01:~# kubectl get node --show-labels
NAME STATUS ROLES AGE VERSION LABELS
192.168.174.135 Ready <none> 220d v1.9.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.174.135,label_key=label_value
192.168.174.136 Ready <none> 220d v1.9.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.174.136
192.168.174.137 Ready <none> 220d v1.9.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.174.137
root@server01:~#
root@server01:~# kubectl label node 192.168.174.135 label_key=label_value_update --overwrite
node "192.168.174.135" labeled
root@server01:~#
root@server01:~# kubectl get node --show-labels
NAME STATUS ROLES AGE VERSION LABELS
192.168.174.135 Ready <none> 220d v1.9.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.174.135,label_key=label_value_update
192.168.174.136 Ready <none> 220d v1.9.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.174.136
192.168.174.137 Ready <none> 220d v1.9.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.174.137
root@server01:~#