返回到文章

采纳

编辑于

nodeName调度 - Kubernetes

kubernetes
kubernetes
调度

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