kubernetes - Kubernetes Scheduler策略配置导致看似无关的错误

标签 kubernetes

Kubernetes版本1.17.4

尝试自定义调度程序优先级,我传递了--policy-config-file指向具有以下内容的文件:

  kind: Policy
  apiVersion: v1
  predicates:
    - name: CheckNodeUnschedulable
    - name: GeneralPredicates
    - name: PodFitsResources
    - name: PodToleratesNodeTaints
    - name: CheckVolumeBinding
    - name: MaxEBSVolumeCount
    - name: MatchInterPodAffinity
    - name: NoDiskConflict
    - name: NoVolumeZoneConflict
    - name: MatchNodeSelector
    - name: HostName
  priorities:
    - {name: BalancedResourceAllocation, weight: 1}
    - {name: LeastRequestedPriority, weight: 1}
    - {name: ServiceSpreadingPriority, weight: 1}
    - {name: NodePreferAvoidPodsPriority, weight: 1}
    - {name: NodeAffinityPriority, weight: 1}
    - {name: TaintTolerationPriority, weight: 1}
    - {name: ImageLocalityPriority, weight: 1}
    - {name: SelectorSpreadPriority, weight: 1}
    - {name: InterPodAffinityPriority, weight: 1}

我认为,这是默认的谓词和策略集,但是kubernetes调度程序无法启动并出现以下错误:
F0417 12:35:52.291434       1 factory.go:265] error initializing the scheduling framework: plugin "NodeName" already registered as "FilterPlugin"

在我的配置文件中的任何地方都没有提到NodeName。我究竟做错了什么?

最佳答案

在此link中,您可以看到已弃用--policy-config-file参数,不建议使用。

Here,您可以看到GeneralPredicatesHostName使用相同的nodename插件:

NodeName谓词:

registry.RegisterPredicate(predicates.GeneralPred,
...
  plugins.Filter = appendToPluginSet(plugins.Filter, nodename.Name, nil)
...

主机名谓词:
registry.RegisterPredicate(predicates.HostNamePred,
...
  plugins.Filter = appendToPluginSet(plugins.Filter, nodename.Name, nil)
...

因此,您可以尝试禁用其中之一,并查看错误是否仍然存在。

这应该可以解决nodename插件的问题,但是如果检测到其他冲突,则可以尝试以相同的方式解决。

关于kubernetes - Kubernetes Scheduler策略配置导致看似无关的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61372088/

相关文章:

Kubernetes 就绪检查未正确设置 HTTP 主机 header

kubernetes - GCP 中不允许使用磁盘创建 kubernetes 集群

amazon-ec2 - Kubernetes - 连接跟踪不会将包破坏回原始目标 IP (DNAT)

kubernetes - 在每个集群的基础上覆盖 helm 子图中的值的最佳实践是什么?

kubernetes - "current-context"是 kubeconfig 文件中的强制键吗?

kubernetes - ConfigMap 挂载在 Persistent Volume Claims 上

kubernetes - 如何在 Kubernetes 中为 Kibana 设置入口

kubernetes - 使服务端口在外部可见

ssl - 在 gke 上设置没有 helm 或 rbac 的证书管理器时遇到问题

ssl - 每个集群的证书还是每个服务提供商的证书?