原文: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'
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐