简介

默认的调度策略是考虑资源是否足够,是否均衡调度。

有时候我们希望能将对应的pod调度到对应的node节点,来给对应的业务提供足够的预留资源。

k8s的亲和性调度:nodeSelector、nodeAffinity、podAffinity、Taints以及Tolerations用法。

nodeSelector

选择node对应的标签来分配pod到对应的node节点。

查看node标签:

kubectl get node  --show-labels

给node打标签

kubectl label node  [node_name]  label_name=label_value

修改标签

kubectl label node  [node_name]  label_name=new_label_value  --overwrite

修改编排文件:

apiVersion: v1
kind: Pod
metadata:
  labels:
    app: mypod
  name: mypod
  namespace: default
spec:
  containers:
  - command:
    - sleep
    - "10000"
    image: busybox
    imagePullPolicy: Always
    name: mypod
  nodeSelector:
    label_name: label_value

查看部署情况

kubectl -n default  describe  pods mypod