在本地系统中查找Kubernetes Scheduler配置文件的位置



我目前在Minikube集群中工作,希望更改kubernetes调度器配置的一些标志,但我找不到。文件看起来像-

apiVersion: kubescheduler.config.k8s.io/v1alpha1
kind: KubeSchedulerConfiguration
algorithmSource:
provider: DefaultProvider
...
disablePreemption: true

它叫什么名字?我在哪里能找到它?

将此答案作为社区wiki发布,以设置基线并提供额外的资源/参考,而不是给出最终的解决方案。

请随意编辑和扩展。


我在minikube中找不到您正在引用的文件(KubeSchedulerConfiguration(。

minikube配置过程不会创建它,也不会在配置文件(/etc/kubernetes/manifests/kube-scheduler.yaml--config=PATH参数(中引用它。

我想你可以看看其他Kubernetes解决方案,在那里你可以配置集群的创建方式(kube-scheduler的配置方式(。其中一些选项是:

  • Kubernetes.io:文档:设置:生产环境:工具:Kubeadm:创建集群以及:
    • Kubernetes.io:文档:设置:生产环境:工具:Kubeadm:控制平面标志
  • Github.com:Kubernetes sigs:Kubesray

旁注!

kubesprayminikube都使用kubeadm作为引导程序!

我还将考虑创建额外的调度器,负责生成您的工作负载(通过在YAML清单中引用(:

  • Kubernetes.io:文档:任务:扩展Kubernetes:配置多个调度器

我还没有对其进行广泛的长期测试,但我已经设法包含了您为kube-scheduler引用的YAML清单。

免责声明

  1. 请将以下示例视为解决方法
  2. 下面描述的方法是不持久的

步骤:

  • 使用--extra-config启动minikube实例
  • 连接到您的minikube实例并编辑/添加文件:
    • /etc/kubernetes/manifests/kube-scheduler.yaml
    • 新建KubeSchedulerConfiguration
  • 删除出现故障的kube-schedulerPod,然后等待重新创建

--extra-config启动您的minikube实例

如前所述,您可以为$ minikube start添加一些附加参数,以便传递到供应过程中。

在这个设置中,你可以用$ minikube start ...传递它,也可以稍后手动传递

  • $ minikube start --extra-config=scheduler.config="/etc/kubernetes/sched.yaml"

以上参数将把- --config=/etc/kubernetes/sched.yaml添加到kube-schedulercommand中。它将在上述位置查找文件。

连接到minikube实例($ minikube ssh(并编辑/添加文件:

您的kube-scheduler将失败,因为您传递了一个不正确的参数(config((缺少文件(。要解决此问题,您需要:

  • 添加:具有所需配置的/etc/kubernetes/sched.yaml
  • 修改:/etc/kubernetes/manifests/kube-scheduler.yaml:
  1. 添加到:volumeMounts:
- mountPath: /etc/kubernetes/sched.yaml
name: scheduler
readOnly: true
  1. 添加到volumes
- hostPath:
path: /etc/kubernetes/sched.conf
type: FileOrCreate
name: scheduler

删除失败的kube-schedulerPod并等待其重新创建

您需要重新部署修改后的调度程序以运行其新配置:

  • $ kubectl delete pod -n kube-system kube-scheduler-minikube

一段时间后,您应该会看到kube-scheduler处于Ready状态。


其他资源:

  • Kubernetes.io:文档:概念:调度驱逐:Kube调度器
  • Kubernetes.io:Docs:Reference:命令行工具Reference:Kube scheduler

最新更新