node节点IP 192.168.1.205
给节点添加标签的命令
添加label语法
kubectl label nodes <node-name> <label-key>=<label-value>
实战
kubectl label node 192.168.1.205 mem=large
查看现有node及label
通过--show-labels 选项将节点的标签显示出来
kubectl get node --show-labels
给节点删除标签的命令
删除label语法
kubectl label nodes <node-name> <label-key>-
kubectl label node 192.168.1.205 mem-
上面命令中的mem-中的mem为标签的键,后面的减号表示将该标签删除
kubernetes通过资源配置文件的nodeSelector属性来对节点进行选择
在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'