不需要使用Scheduler的情况

Scheduler 主要任务是 调度 Pod

具体过程请参考 Kubernetes Pod 创建过程

有几种情况,Kubernetes可以绕过 调度器 直接创建pod

  • 创建pod的时候,指定了 nodeName
  • 由守护进程集 daemonset 创建的pod (daemonset会指定nodeName,所以和第一条一样)
  • 静态pod

进一步解释

	由守护进程集创建的Pod可以在调度器启动之前运行
	由守护进程集创建的Pod可以不遵守节点的Unschedulable
	由守护进程集创建的Pod优先级更高,解调度器会避免驱逐它,自动缩放器也会单独管理它们

	静态 Pod 和 守护进程集 类似,Kubelet 除了可以与 Kubernetes API 服务器通信并获取 Pod 描述文件之外,还可以从本地目录获取资源定义。以这种方式定义的 Pod,只能由 Kubelet 管理,而且只能在一个节点上运行。
	API 服务不会监视这些 Pod ,而且它们也没有控制器,也不会针对它们执行 健康检查,Kubelet 会监视这些 Pod,并在崩溃时重启。
	Kubelet 还会定期扫描配置目录,以查找 Pod 定义的改动,并相应的添加 或 删除 Pod
	

Send a Message