如何应用新的默认 kube-scheduler 配置?

如何应用新的默认 kube-scheduler 配置?

Kubernetes 版本 1.22。集群由 kops 创建。

我正在尝试按照此处所述替换默认的 kube-scheduler 配置(添加配置文件)https://kubernetes.io/docs/reference/config-api/kube-scheduler-config.v1beta3/#kubescheduler-config-k8s-io-v1beta3-KubeSchedulerConfiguration

apiVersion: kubescheduler.config.k8s.io/v1beta3
kind: KubeSchedulerConfiguration
profiles:
  - schedulerName: default-scheduler
    pluginConfig:
blah-blah...

但是简单的 kubectl 命令失败:

kubectl apply -n kube-system -f scheduler-config.yaml
error: unable to recognize "scheduler-config.yaml": no matches for kind "KubeSchedulerConfiguration" in version "kubescheduler.config.k8s.io/v1beta3"

KubeSchedulerConfiguration命令位于“kubescheduler.config.k8s.io/v1beta3”中。我是否应该使用其他命令来应用它?

感谢您的任何帮助!

/谢尔盖

答案1

好的,最终的结论是:

  • 我无法通过 k8s API 更新 kube-scheduler 配置。更新它的唯一方法是使用配置作为参数启动调度程序。要执行此操作,您需要有权访问主节点 CLI(或文件系统)
  • kops 有一些允许 kube-scheduler 配置的支持:https://kops.sigs.k8s.io/cluster_spec/通过:
spec:
  kubeScheduler:
    usePolicyConfigMap: true
    enableProfiling: false

但它将在 kops 1.23 中被弃用:https://github.com/kubernetes/kops/issues/13352。任何新的支持都不会早于 kops 1.25:https://github.com/kubernetes/kops/pull/13618

结论 - 管理 kube-scheduler 配置的唯一方法是通过直接访问主节点文件系统和进程(重新启动调度程序)

相关内容