问题标签 [nodeselector]
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.
kubernetes - Kubernetes 节点亲和性 - 将 pod 分配给特定节点?
k8s节点亲和性文档解释了如何通过首先使用标签标记节点并使用 nodeSelector 选择节点来将 pod 部署到特定节点。
但是,我有一个用例,我在集群中有 40-50 个部署,我想向集群添加一个新节点并将该节点设置为专用于其中一个部署/pod,而不更改所有那些没有的部署指定的任何 nodeSelector
例如,假设我有 3 个部署,没有定义 nodeSelector 和 3 个工作节点。这意味着 k8s 决定 pod 的部署位置,并且可以部署在这 3 个节点之一中。现在我必须创建第 4 个部署,并添加第 4 个服务器,我想将第 4 个部署专用于第 4 个服务器,并且还想确保 k8s 不会将前 3 个部署安排到第 4 个节点。如果不通过所有这 3 个部署方案并应用 nodeSelector 过滤器不部署在第 4 个节点上,我该如何做到这一点?(可以在 3 个部署上执行此更改,但我说的是现实生活场景中的 50 次部署)
我唯一能想到的就是污染节点,但如果我这样做,则不会在那里安排任何 Pod。
这里有没有更好的方法来实现我不知道的这个目标?
amazon-web-services - 部署不在 nodeSelector Kubernetes 中
我有一个具有 2 个节点的集群,其中一个节点被标记为节点选择器的“SS”。
我有三个服务,一个服务应该部署在节点选择器节点中(这是正确发生的),另外两个服务应该部署在另一个节点中
如何部署剩余的服务应该部署在一个节点(没有被标记)?
我不想将节点选择器也用于其他两个服务。
kubernetes - 如何在 kubernetes 中按顺序在多个节点上运行 cronjob?
我有两种不同类型的工作节点,一种是做数据准备的,一种是做机器学习的。
我想运行一个 Cronjob,它在准备节点上运行一个进程,然后(仅在完成时)在 ML 节点上运行第二个进程。
我如何在 Kubernetes 中做到这一点?
kubernetes - 是否有一行 kubectl 命令可以在 pod yaml 中添加 nodeSelector?
我想知道是否有一行 kubectl 命令可以在 pod yaml 中添加 nodeSelector?(我已经在节点上附加了一个标签)我正在尝试自动执行此操作,因此我想避免手动下载 yaml 文件并添加 nodeSelector。任何使用 sed 或 kubectl replace 的想法将不胜感激。
kubernetes - 在 kubernetes v1.21.0 的 apiserver 清单文件中包含额外的标志似乎没有任何效果
我正在尝试将以下两个标志添加到 /etc/kubernetes/manifests/kube-apiserver.yaml 文件中的 apiserver:
我没有为 /vagrant/admission-control.yaml 文件安装卷或安装点。它完全可以从节点主节点访问,因为它由 vagrant 创建的 VM 共享:
Kubernetes 版本:
链接到正在运行的集群正在使用的 /etc/kubernetes/manifests/kube-apiserver.yaml 文件这里
不幸的是,“kubectl describe pods kube-apiserver-master-1 -n kube-system”仅告知该 pod 已重新创建。标志未按需要显示。没有报告错误。
任何建议都会有所帮助,
谢谢你。
笔记:
- 我还尝试在 apiserver 的 configmap 上打一个补丁。补丁已应用,但不会在新运行的 Pod 中生效。
- 我还尝试通过 kubeadm init --config 在一个文件中传递这两个标志,但是关于如何将这两个标志以及我需要的所有其他 apiserver 的所有其他标志放在配置文件中以便重新安装的文档很少主节点。
更新:
我希望这对面临同样问题的每个人都有用......
经过 2 天的互联网搜索和大量测试后,我只能通过以下程序使其工作:
kubernetes - 使用节点选择器的 Kubernetes Pod AntiAffinity 行为
我有一个 K8s 部署,其规范中有节点选择器和硬 pod 反亲和性。节点选择器将 Pod 部署限制在一个节点池中,而反亲和性限制没有两个标签为“App: test-pool”的 pod 被安排在一起。
观察
目标节点池有 9 个具有唯一标签值的节点,节点选择器使用该标签值来定位 pod 部署。当我有 9 个部署副本时,所有副本都安排在不同的节点上,我认为这是由于反亲和性。但是,一旦我将副本增加到 10,我看到第 10 个 pod 也成功部署在节点池中的 9 个节点之一上,从而忽略了硬反关联规则。以下是depoyment的片段:
期待
我期待参考反关联规则的调度失败。有人可以解释为什么在调度过程中忽略了 pod 反关联规则。
kubernetes - 如何将 nodeSelector 添加到部署 yaml 文件?
在 pod 定义中,我们将 nodeSelector 添加为 spec 的子节点。但我不确定如何在部署 yaml 文件中添加它
我们应该将它添加到模板的规范中吗?
还是我们需要在部署规范中添加它 -
go - 有什么方法可以使用 golang api 为 pod 设置节点选择器
基本上需要一种使用 GoLang API 为 Pod 设置节点选择器的方法
Pod.Spec.NodeSelector["failure-domain.beta.kubernetes.io/zone"] = zone出现错误
kubernetes - EKS nodeSelector 导致挂起的 pod
nodeSelector
在我的 Kubernetes 清单中使用时遇到问题。我在 EKS 中有一个带有标签的节点组eks.amazonaws.com/nodegroup=dev-nodegroup
。这个节点有一个名称和对应的 ip,就像在 AWS 中一样。如果我nodeName
在清单中设置,一切正常,并且 pod 部署在相应的节点中,但是当我这样做时:
在我的清单中,在与 相同的缩进containers
级别FailedScheduling
难道我做错了什么?我还想将zone
标签添加到节点选择器,但它会产生同样的问题。
“没有可用磁盘”是什么意思?我已经检查了我的节点,df -h
并且有足够的可用磁盘空间。我已经看到其他问题的输出是节点无法访问或有一些污点,我的没有。
任何帮助是极大的赞赏。
编辑
我在 pod 中安装了一个卷,如下所示:
由于 EBS 仅部署在一个中,zone
因此我还需要设置zone
选择器。
我也有这个 storageClass (刚刚注意到它):
编辑2
我的集群只有一个节点组和一个节点,以防这也有帮助。
jenkins - GKE jenkins kubernetes 插件节点选择器不起作用
我正在使用 Jenkins 使用 kubernetes插件版本 1.30.3 将我的 Docker 映像部署到 GKE。到目前为止它工作正常。但现在我试图通过添加节点选择器在 GKE 中选择一个已定义的节点池,但这对我不起作用。这是我的 Jenkins 文件中 podTemplate 的定义:
你知道为什么这不起作用吗?
我已经检查了结果 pod yaml
,它不包括定义的nodeSelector
...