问题标签 [kubernetes-label]

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 投票
1 回答
789 浏览

kubernetes - 如何从 Kubernetes 部署中删除标签选择器?

我正在尝试从现有部署的spec.selector.matchLabels配置中删除键/值对。例如,我试图从and中删除some.old.label: blah标签。所以这是我要发送的内容的摘录:spec.selector.matchLabelsspec.template.metadata.labelskubectl apply -f

但这给了我以下错误:

selector与模板不匹配labels

我也试过kubectl replace了,这给了我这个错误:

v1.LabelSelector{MatchLabels:map[string]string{“app”:“my-app”},MatchExpressions:[]v1.LabelSelectorRequirement(nil)}:字段不可变

一旦我在产品中检查了部署的配置,这是有道理的:

请注意如何在和 some.old.label: blah下设置键/值。selector.matchLabelstemplate.metadata.labels

我必须先删除然后重新创建我的部署吗?或者也许打电话kubectl replace --force

笔记

我在Kubernetes 部署文档中遇到了这一部分:

选择器删除从部署选择器中删除现有键——不需要对 Pod 模板标签进行任何更改。现有的 ReplicaSet 不是孤立的,也不会创建新的 ReplicaSet,但请注意,删除的标签仍然存在于任何现有的 Pod 和 ReplicaSet 中。

以及这个 PR这个 Github 问题,它们谈到了问题背后的原因,但我不知道如何安全地更新我的部署以删除这个选择器。

0 投票
1 回答
67 浏览

kubernetes - 使用亲和力将两个 Kubernetes pod 分开,标签值未知

想象一下,我在单独的 k8s 节点上有一些我需要的 pod,如果我知道两个 pod 都有标签,我可以使用这样的东西my/label=somevalue

我有一些我需要根据同一标签的多个值分开的豆荚,这些值预先不知道(它是一个由操作员计算的共享密钥)。

有没有一种方法可以指定podAffinityTerm适用于共享相同值的任何 pod 的a my.label,而不管实际值如何?

例如

我需要 pod a & b 彼此分离,pod c & d 相互分离,但例如 a 和 d 可以在同一个节点上共存

0 投票
0 回答
75 浏览

kubernetes - 基于标签限制对命名空间的访问

我有一个包含许多现有命名空间的集群,以及一个使用 Terraform 创建(和管理)新命名空间的自动化过程。

用于 TF 的服务帐户获得了具有所有命名空间权限的角色 - 因为我相信这是唯一可能的解决方案(TF 需要它们来管理命名空间)。
但正因为如此,它还能够在 Terraform 处理之外修改(和删除)之前创建的命名空间——这是我想阻止/阻止的事情。

所以这是我的问题 - 是否可以限制这个自动化过程修改已经存在的命名空间?
区分新旧命名空间的想法是简单地向 TF 创建的新命名空间添加标签,但我不知道有任何机制可以禁止基于此类标签进行修改......

*准入控制器似乎很合适,但我对该主题完全陌生,不确定是否可以将其用于此类目的。

0 投票
1 回答
88 浏览

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

我的集群只有一个节点组和一个节点,以防这也有帮助。