美文网首页思科DevNet
Kubernetes对Node label标签管理

Kubernetes对Node label标签管理

作者: 平凡的运维之路 | 来源:发表于2019-08-15 16:06 被阅读0次

    删除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
    
    
    
    

    相关文章

      网友评论

        本文标题:Kubernetes对Node label标签管理

        本文链接:https://www.haomeiwen.com/subject/mtwzjctx.html