nodeName调度 - Kubernetes

原创
半兽人 发表于: 2019-08-08   最后更新时间: 2019-08-09 00:51:07  
{{totalSubscript}} 订阅, 4,109 游览

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的节点上了。

更新于 2019-08-09

查看kubernetes更多相关的文章或提一个关于kubernetes的问题,也可以与我们一起分享文章