为什么需要多次定义部署的标签?为了快速解释我的问题,我举一个例子。
apiVersion: apps/v1
kind: Deployment
metadata:
name: app
# 1st Time
labels:
app: app
tier: backend
spec:
selector:
# 2nd Time
matchLabels:
app: app
tier: backend
template:
metadata:
# 3rd time
labels:
app: app
tier: backend
Run Code Online (Sandbox Code Playgroud)
我的第一个问题是我真的找不到任何spec.selector.matchlabels存在的充分理由。spec.selector.matchlabels 一定要匹配 spec.template.metadata.labels对吗?
描述:
Pod 的标签选择器。由此选择的 pod 的现有 ReplicaSet 将受到此部署的影响。它必须与 Pod 模板的标签匹配。
那么,如果它们应该固定为 kubernetes 知道的特定值,并且如果其中一个与另一个不匹配,无论如何都会抛出错误,那么为什么必须明确定义它们呢?
我的第二个问题可能有更合理的答案,那就是为什么必须明确定义部署的标签和模板的标签?它们不应该也相互匹配吗?或者是否存在它们可能不匹配的情况?我只是错误地使用它们吗?没有关于它们针对模板标签的使用的明确文档。:/
如果我可能做错或理解错误,请指出!:D
kubernetes ×1