.spec.selector字段定义部署如何查找要管理的Pods。但是,我们也在模板中定义了标签,那么我们在.spec.selectors字段中得到的额外内容是什么,因为部署可以找到要使用模板中定义的标签来管理的Pods?
在下面的代码中,如何通过部署来管理带有“LabelocCloud.oracle.com/open: allow”的pod,因为它在spec.selectors中没有描述过。
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: cheeseshop
spec:
replicas: 1
progressDeadlineSeconds: 180
selector:
matchLabels:
app.kubernetes.io/name: tutorial
app.kubernetes.io/component: cheeseshop
template:
metadata:
labels:
app.kubernetes.io/name: tutorial
app.kubernetes.io/component: cheeseshop
occloud.oracle.com/open-network-policy: allow
name: cheeseshop发布于 2021-10-19 11:24:16
spec.seletor字段由部署/复制集控制器使用。它必须是在中指定的标签的子集。这就是为什么你可能在你的吊舱里有额外的标签。但它们仍将由部署来管理。
spec.selector还用于检查是否有任何现有的ReplicaSet已经匹配这些条件。如果Deployment controller找到了一个孤立的ReplicaSet,它将被部署使用,而不是创建一个新的。请参阅https://github.com/kubernetes/kubernetes/blob/master/pkg/controller/deployment/deployment_controller.go#L222
https://stackoverflow.com/questions/69626519
复制相似问题