nodeName调度 - Kubernetes

半兽人 发表于: 2019-08-08   最后更新时间: 2019-08-09  

nodeName是最简单的节点选择约束方式,我常常用它来将pod直接指定到某台节点上,进行测试。

注意:如果它不为空,则调度程序不会在调度这个pod了,并且在命名节点上运行的kubelet尝试运行该pod。因此,如果在PodSpec中提供nodeName,则它将优先于其他的约束。

使用nodeName选择节点的一些限制情况:

  • 如果指定的命名节点不存在,则不会运行该pod,并且在某些情况下可能会自动删除。
  • 如果指定的命名节点没有足够的资源,则pod将失败,并显示其失败原因,例如, OutOfmemoryOutOfcpu
  • 节点名称在云环境中并不总是可预测或稳定的。

例子

第一步,先查看你的节点有哪些,可用如下命令查看:

# kubectl get nodes
kube-01   Ready                     <none>   425d   v1.13.2
kube-02   Ready                      <none>   405d   v1.13.2
kube-03   Ready                      <none>   405d   v1.13.2

然后,在pod中增加nodeName,就可以了:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx
  nodeName: kube-01

这样,该pod将运行在名为kube-01的节点上了。



您需要解锁本帖隐藏内容请: 点击这里
本帖隐藏的内容




上一条: 亲和和反亲和 - Kubernetes(k8s)
下一条: Taint和Toleration(污点和容忍)- Kubernetes