0
点赞
收藏
分享

微信扫一扫

Kubernetes对Node label标签管理

码农K 2021-09-30 阅读 48

删除Node节点

kubectl get nodes #查看全部node节点
kubectl delete node node-name  #删除某个node节点

Node的隔离和恢复

隔离

  • 硬件维护或者升级增加硬盘或者内存时,需要将Node进行隔离,脱离K8s调度范围,Kubernetes也提供Node纳入调度范围、和脱离调度范围

  • 通过配置文件实现 脱离K8s调度范围

[root@master Nodes]# cat unschedule_node.yaml 
apiVersion: v1
kind: Node
metadata:
  name: My-Node
  labels:
    kubernetes.io/hostname: k8s-node-1
spec: 
  unschedulable: true

[root@master Nodes]# kubectl  apply -f unschedule_node.yaml

  • 命令行方式
kubectl patch node k8s-node1 -p '{"spec":"{"unschedulable":"true"}"}'

恢复

  • 就是将unsechdulable的值修改为ture,实现隔离,同时恢复时,只需要将unschedulable的值修改为false即可
kubectl cordon k8s-node1    #将k8s-node1节点设置为不可调度模式
kubectl drain k8s-node1     #将当前运行在k8s-node1节点上的容器驱离
kubectl uncordon k8s-node1  #执行完维护后,将节点重新加入调度

资源对象label的操作

  • 给node添加一个label标签
kubectl label node k8s-node1 role=kube-Node

  • 查看label标签
kubectl  get node -a -l "role=lube-Node"

  • 删除label标签,只需要在命令行最后指定label的key名,并加一个减号就可以了。
kubectl label node k8s-node1 role-

  • 将节点调度到指定Node
    • 首先给对应需要调度的node打上标签,然后创建资源清单时添加上nodeSelector属性对应即可
kubectl label nodes k8s-node1 role=k8s-Node

[root@master NetworkPolicy]# cat pod-demo-2.yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod2
  labels:
    app: nginx
spec:
  containers:
  - name: app-2
    image: ikubernetes/myapp:v1 
nodeSelector:
  node: kube-Node



举报

相关推荐

0 条评论