问题标签 [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.
kubernetes - 如何从 Kubernetes 部署中删除标签选择器?
我正在尝试从现有部署的spec.selector.matchLabels
配置中删除键/值对。例如,我试图从and中删除some.old.label: blah
标签。所以这是我要发送的内容的摘录:spec.selector.matchLabels
spec.template.metadata.labels
kubectl apply -f
但这给了我以下错误:
selector
与模板不匹配labels
我也试过kubectl replace
了,这给了我这个错误:
v1.LabelSelector{MatchLabels:map[string]string{“app”:“my-app”},MatchExpressions:[]v1.LabelSelectorRequirement(nil)}:字段不可变
一旦我在产品中检查了部署的配置,这是有道理的:
请注意如何在和 some.old.label: blah
下设置键/值。selector.matchLabels
template.metadata.labels
我必须先删除然后重新创建我的部署吗?或者也许打电话kubectl replace --force
?
笔记
我在Kubernetes 部署文档中遇到了这一部分:
选择器删除从部署选择器中删除现有键——不需要对 Pod 模板标签进行任何更改。现有的 ReplicaSet 不是孤立的,也不会创建新的 ReplicaSet,但请注意,删除的标签仍然存在于任何现有的 Pod 和 ReplicaSet 中。
以及这个 PR和这个 Github 问题,它们谈到了问题背后的原因,但我不知道如何安全地更新我的部署以删除这个选择器。
kubernetes - 使用亲和力将两个 Kubernetes pod 分开,标签值未知
想象一下,我在单独的 k8s 节点上有一些我需要的 pod,如果我知道两个 pod 都有标签,我可以使用这样的东西my/label=somevalue
我有一些我需要根据同一标签的多个值分开的豆荚,这些值预先不知道(它是一个由操作员计算的共享密钥)。
有没有一种方法可以指定podAffinityTerm
适用于共享相同值的任何 pod 的a my.label
,而不管实际值如何?
例如
我需要 pod a & b 彼此分离,pod c & d 相互分离,但例如 a 和 d 可以在同一个节点上共存
kubernetes - 基于标签限制对命名空间的访问
我有一个包含许多现有命名空间的集群,以及一个使用 Terraform 创建(和管理)新命名空间的自动化过程。
用于 TF 的服务帐户获得了具有所有命名空间权限的角色 - 因为我相信这是唯一可能的解决方案(TF 需要它们来管理命名空间)。
但正因为如此,它还能够在 Terraform 处理之外修改(和删除)之前创建的命名空间——这是我想阻止/阻止的事情。
所以这是我的问题 - 是否可以限制这个自动化过程修改已经存在的命名空间?
区分新旧命名空间的想法是简单地向 TF 创建的新命名空间添加标签,但我不知道有任何机制可以禁止基于此类标签进行修改......
*准入控制器似乎很合适,但我对该主题完全陌生,不确定是否可以将其用于此类目的。
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
我的集群只有一个节点组和一个节点,以防这也有帮助。