问题标签 [kube-scheduler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6189 浏览

kubernetes - 如何在 Kubernetes 中跨所有节点均匀部署 pod?

我有几个 Kubernetes 集群,每个集群都有不同的#of 节点。我的配置部署有“副本:#nodes”。没有为调度该 pod 设置特定的配置,但在部署之后,我看到节点上 pod 分布的奇怪行为。

例子:

对于 30 个节点的集群(30 个副本),所有 30 个 pod 副本仅分布在 25 个节点上,其他 5 个节点在集群中是理想的。 许多其他不同集群的类似情况,这个计数在每次新/重新部署时都会有所不同。

问题:

我想将我的 pod 副本分布在所有节点上。如果我设置“副本:#nodes”,那么我应该在每个节点中有一个 pod 副本。如果我将副本数增加/加倍,那么它应该均匀分布。Kubernetes 的部署 yaml 中是否有任何特定配置?

使用节点 AntiAffinity 进行配置,但此配置仍然如上所示。尝试使用“requiredDuringSchedulingIgnoredDuringExecution”,并且确实在每个节点中部署了一个 pod,但是如果我增加副本或任何节点在部署期间出现故障,那么整个部署将失败。

0 投票
1 回答
1478 浏览

memory - 我的机器有足够的内存,但是kubernetes无法调度pod并提示内存不足

我有一个 1.16.2 版本的 Kubernetes 集群。当我在副本为 1 的集群中部署所有服务时,它工作正常。然后我将所有服务的副本扩展到 2 并签出。发现某些服务正在运行正常,但某些状态正在等待。当我 kubectl 描述其中一个待处理的 pod 时,我收到如下消息

从下面可以看到我的机器还有2G多内存。

这是所有4个节点的描述

以及所有4个节点的内存:

这是 kube-scheduler 日志:

我搜索了谷歌和stackoverflow,找不到解决方案。谁能帮我 ?

0 投票
1 回答
77 浏览

kubernetes - 将 kube-scheduler 配置为仅使用节点容量的百分比

有没有办法将 Kube-Scheduler 配置为仅使用节点上一定百分比的容量?例如,我希望调度程序停止在已使用 70% 的内存和 CPU 资源的节点上调度 pod。

根据调度策略文档,PodFitsResources 谓词似乎最符合我的要求。但是,有没有办法配置此谓词,以便在消耗 70% 的资源后,此节点在调度程序过滤期间不可用?

0 投票
0 回答
165 浏览

kubernetes - 如何在 kube-scheduler 中显示调度策略

我的问题是如何显示kube-scheduler使用的当前谓词和优先级策略。请注意,我没有更改或覆盖它们,所以我想知道如何显示它们,或者任何人都可以告诉我过滤评分中使用的默认策略是什么。

0 投票
1 回答
655 浏览

kubernetes - kube-controller-manager 和 kube-scheduler 重启后 kubelet 无法获取节点状态

我的 k8s1.12.8集群(通过 kops 创建)已经运行了 6 个多月。最近,一些事情导致主节点kube-schedulerkube-controller-manager主节点都死机并重新启动:

从那以后kube-schedulerkube-controller-manager重新启动,kubelet 完全无法获取或更新任何节点状态:

集群在此状态下完全无法执行任何更新。

  • 什么会导致主节点失去与这样的节点的连接?
  • 第一个日志输出中的第二行“截断的主机名..”是问题的潜在根源吗?
  • 如何进一步诊断导致获取/更新节点操作失败的实际原因?
0 投票
3 回答
1508 浏览

kubernetes - 如何更改 kubernetes 中的默认 kube-scheduler

该文档讲述了如何运行多个调度程序。但我无法理解默认调度程序是如何决定的?是基于--leader-elect期权吗?

我可以告诉 Kubernetes 使用 my-custom-scheduler 作为默认调度程序而不是 kube-scheduler 吗?schedulerName除了Pod/Deployment 规范之外,还有其他方法可以指定调度程序 。

0 投票
1 回答
1302 浏览

kubernetes - 如何自定义 AKS 上 kube-scheduler 的行为?

我正在尝试自定义kube-schedulerAKS 群集 (kubernetes v1.19.3) 上的行为,如Scheduler Configuration中所述。

我的目标是使用NodeResourcesMostAllocated插件来使用尽可能少的节点来调度 Pod。

考虑以下文件 -most-allocated-scheduler.yaml

根据文档,我可以通过运行以下命令来指定调度配置文件:

但是我究竟在哪里可以找到kube-scheduler以运行上述命令?我想在管道上理想地做到这一点。使用AKS时可以做这样的事情吗?

0 投票
1 回答
163 浏览

kubernetes - 为命名空间启用自定义 kubernetes 调度程序

我有一个 k8 工作,它带来了多个 pod。该作业用于负载测试,因此所有 pod 都需要同时出现。在所有要调度的 pod 的节点都可用之前,不应启动作业。我遇到了 kube-batch https://github.com/kubernetes-sigs/kube-batch来做这个调度。我有几个问题:

1.如何只为集群中的一个命名空间启用kube-batch?

2.按照教程安装 kube-batch。但是 pod 在启动时失败并出现以下错误。如何解决此错误?

0 投票
1 回答
117 浏览

kubernetes - Kubernetes 调度忽略每个工作节点的 pod 计数

我们有一个包含三个工作节点的 Kubernetes 集群,它是手动构建的,借鉴了“Kubernetes, the hard way”教程。

此集群上的所有内容都按预期工作,但有一个例外:调度程序不 - 或似乎不 - 遵守每个工作节点 110 个 pod 的限制。

例子:

工作节点 1:60 个 Pod 工作节点 2:100 个 Pod 工作节点 3:110 个 Pod

当我想部署一个新的 pod 时,调度程序经常会决定最好将新的 pod 调度到“工作节点 3”。Kubelet 拒绝这样做,它确实尊重其 110 pod 限制。调度程序一次又一次地尝试并且从未成功。

我不明白为什么会这样。我想我可能会遗漏有关此问题的一些细节。

根据我的理解和我对调度程序本身的了解,在调度时没有考虑到“每个节点的 pod 数量”的资源或指标——或者至少我在 Kubernetes 调度程序中没有发现任何其他建议文档。当然,调度程序会考虑 CPU 请求/限制、内存请求/限制、磁盘请求/限制 - 这一切都很好并且可以正常工作。所以我什至不知道调度程序如何考虑工作人员使用的 pod 数量,但必须有某种功能来做到这一点,对吧?还是我弄错了?

我的集群坏了吗?我对调度应该/确实如何工作有一些误解吗?

Kubernetes 二进制版本:v1.17.2

编辑:Kubernetes 版本

0 投票
2 回答
3835 浏览

kubernetes - kube-prometheus-stack 问题抓取指标

一般集群信息:

  • Kubernetes 版本:1.19.13
  • 正在使用的云:私有
  • 安装方式:kubeadm init
  • 主机操作系统:Ubuntu 20.04.1 LTS
  • CNI和版本:织网:2.7.0
  • CRI 和版本:Docker:19.3.13

我正在尝试让kube-prometheus-stack舵图正常工作。这似乎对大多数目标都有效,但是,一些目标保持不变,如下面的屏幕截图所示。 在此处输入图像描述

kube-etcd有什么建议吗,我如何获得kube-controller-managerkube-scheduler监控Prometheus

我部署了此处提到的掌舵图,并在此处应用了建议以使 kube-proxy 由.Prometheus

提前感谢您的帮助!

编辑1: