Pul*_*rma 9 yaml kubernetes google-kubernetes-engine kubernetes-deployment kubernetes-pod
.spec.selector 字段定义 Deployment 如何查找要管理的 Pod。但是我们还在模板内定义了标签,那么我们通过 .spec.selectors 字段得到的额外东西是什么,因为 Deployment 也可以找到要使用模板中定义的标签进行管理的 Pod?
在下面的代码中,带有“label occloud.oracle.com/open-network-policy: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
Run Code Online (Sandbox Code Playgroud)
spec.seletor该字段由部署/复制集控制器使用。它必须是中指定的标签的子集podTemplate。这就是为什么您的 Pod 中可能有其他标签。但它们仍将由部署管理。
spec.selector还用于检查是否有任何现有的ReplicaSet已匹配这些条件。如果Deployment controller发现一个孤立的ReplicaSet,部署将使用它而不是创建一个新的。请参阅https://github.com/kubernetes/kubernetes/blob/master/pkg/controller/deployment/deployment_controller.go#L222
| 归档时间: |
|
| 查看次数: |
1293 次 |
| 最近记录: |