原文:https://www.cnblogs.com/faberbeta/p/13967873.html
打标签
kubectl label nodes <node-name> <label-key>=<label-value>
实战打标签
kubectl taint nodes 10.71.8.13 node-role.kubernetes.io/master:NoSchedule
去标签
kubectl taint nodes 10.71.8.13 node-role.kubernetes.io/master:NoSchedule-
查看现有node及label
通过–show-labels 选项将节点的标签显示出来
kubectl get node --show-labels
去标签
kubectl label nodes <node-name> <label-key>-
kubectl label node 192.168.1.205 mem-
# 上面命令中的mem-中的mem为标签的键,后面的减号表示将该标签删除
在Deployment配置文件,spec属性中增加nodeSelector属性
如下的Deployment配置文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 3
template:
metadata:
labels:
app: nginx
track: stable
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
nodeSelector:
mem: large
创建一个名为nginx-deployment.yaml的配置文件
kubectl apply -f nginx-deployment.yaml
kubectl get pods -o wide
除了可以在配置文件中通过nodeSelector属性指定节点之外,用户在命令行中也可以通过
-l或者–labels=这两个选项指定节点的标签,例如
kubectl run nginx-deployment --image=nginx:1.7.9 --replicas=3 --labels='mem=large'