美文网首页
Kubernetes nodeSelector

Kubernetes nodeSelector

作者: 程序员同行者 | 来源:发表于2018-11-13 10:19 被阅读0次

    labels 在 K8s 中是一个很重要的概念,作为一个标识,Service、Deployments 和 Pods 之间的关联都是通过 label 来实现的。而每个节点也都拥有 label,通过设置 label 相关的策略可以使得 pods 关联到对应 label 的节点上。

    nodeSelector

    nodeSelector 是最简单的约束方式。nodeSelectorPodSpec 的一个字段。

    通过 --show-labels 可以查看当前 nodeslabels

    $ kubectl get nodes --show-labels
    NAME       STATUS    ROLES     AGE       VERSION   LABELS
    minikube   Ready     <none>    1m        v1.10.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/
    hostname=minikube
    

    如果没有额外添加 nodes labels,那么看到的如上所示的默认标签。我们可以通过 kubectl label node 命令给指定 node 添加 labels:

    $ kubectl label node minikube disktype=ssd
    node/minikube labeled
    $ kubectl get nodes --show-labels
    NAME       STATUS    ROLES     AGE       VERSION   LABELS
    minikube   Ready     <none>    5m        v1.10.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,disktype=ssd,kubernetes.io/host
    

    当然,你也可以通过 kubectl label node 删除指定的 labels(标签 key 接 - 号即可)

    $ kubectl label node minikube disktype-
    node/minikube labeled
    $ kubectl get node --show-labels
    NAME       STATUS    ROLES     AGE       VERSION   LABELS
    minikube   Ready     <none>    23m       v1.10.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=minikube
    

    创建测试 pod 并指定 nodeSelector 选项绑定节点:

    $ cat nginx.yaml
    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
      labels:
        env: test
    spec:
      containers:
      - name: nginx
        image: nginx
        imagePullPolicy: IfNotPresent
      nodeSelector:
        disktype: ssd
    $ kubectl create -f nginx.yaml
    pod/nginx created
    

    查看 pod 调度的节点,即我们指定有 disktype=ssd label 的 minikube 节点:

    $ kubectl get pods -o wide
    NAME      READY     STATUS    RESTARTS   AGE       IP           NODE
    nginx     1/1       Running   0          1m        172.18.0.4   minikube
    

    相关文章

      网友评论

          本文标题:Kubernetes nodeSelector

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