kubernate系列一:创建label(指定若干机器进行部署)

指定若干机器进行部署

将slaver节点机器按照它们的labels进行归类。使用"nodeSelector"进行选择。

  1. 管理node的标签
    使用kubectl label nodes {nodename} {key=value} 进行标签的添加。如:

kubectl label nodes 10.126.72.31 points=test

会给10.126.72.31这个节点添加一个标签:points=test

我们给31.32两台机器同时加上这个标签。

  1. 使用nodeSelector选择器
    类似于上文的nodeName,在创建资源的json/yaml文件中使用nodeSelector字段,如:


{
    "apiVersion": "v1",
    "kind": "ReplicationController",
    "metadata": {
        "labels": {
            "name": "benchcpu"
        },
        "name": "benchcpu-controller"
    },
    "spec": {
        "replicas": 3,
        "selector": {
            "name": "benchcpu"
        },
        "template": {
            "metadata": {
                "labels": {
                    "name": "benchcpu"
                }
            },
            "spec": {
                "containers": [
                    {
                        "image": "registry.hub.huangyang.com.cn/sysbench:0.5shell",
                        "name": "sysbench",
                        "command":[
                            "./todo.sh",
                            "--num-threads=1 --forced-shutdown=1 --max-time=60 --test=cpu --cpu-max-prime=10000000 run ",
                            "0"
                        ]
                    }
                ],
                 "nodeSelector":{
                    "points":"test"
                 }
            }
        }
    }
}

即可将pod指定到31或32上部署运行。

需要注意

不论是nodeName,nodeSelector,还是下文提到的 node affinity,针对他们的过滤条件,即使目前没有满足过滤条件的node,master也会指派至少一个node去部署pod,因为选择器的意思是选择“可以被分配到的节点”,而不是指定“不可被分配到的节点”。



你可能感兴趣的:(kubenates)