在部署中,在什么情况下选择器中的匹配标签不能精确匹配模板元数据标签?如果它们不匹配,那么创建的任何pod都不会与选择器匹配,我可以想象K8s会继续创建新的pod,直到每个节点都已满。如果那是真的,为什么K8s要我们两次指定相同的标签?要么我漏掉了什么,要么这违反了干燥原则。
我唯一能想到的就是创建一个带有 matchLabels “key: A” 的部署
K8s文档给出了以下例子:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
<代码>。。。在部署中,在什么情况下选择器中的matchLabels与模板元数据标签不精确匹配代码>
进行金丝雀部署时的示例。
<代码>。。。如果它们不匹配,那么创建的任何pod都不会与选择器匹配,我想K8会继续创建新的pod,直到每个节点都满为止代码>
您的部署将无法继续,它将失败,并出现错误消息"selector"与模板"标签"
不匹配。不会创建pod。
<代码>...感觉模板元数据中的任何标签都应该自动出现在选择器匹配标签中。
模板.元数据下的标签用于多种目的,不仅用于部署,CNI添加的示例标签与动态IP有关。用于选择器的标签应该是最少且特定的。
...在部署中,在什么情况下选择器中的 matchLabel 与模板元数据标签不完全匹配?
规范选择器.matchLabels
下的标签应与标准模板.metadata.Labels
规则选择器.matchLabel下面有不存在的标签。