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 配置的唯一方法是通过直接访问主节点文件系统和进程(重新启动调度程序)