首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用完全相同的吊舱标签的两个Kubernetes部署

使用完全相同的吊舱标签的两个Kubernetes部署
EN

Stack Overflow用户
提问于 2021-10-28 13:29:56
回答 1查看 984关注 0票数 5

假设我有两个部署,它们与部署名称完全相同:

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-d
spec:
  replicas: 3
  selector:
    matchLabels:
      app: mynginx
  template:
    metadata:
      labels:
        app: mynginx
    spec:
      containers:
      - name: nginx
        image: nginx
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-d2
spec:
  replicas: 3
  selector:
    matchLabels:
      app: mynginx
  template:
    metadata:
      labels:
        app: mynginx
    spec:
      containers:
      - name: nginx
        image: nginx

由于这两个部署具有相同的选择器和相同的pod模板,我希望看到三个吊舱。然而,创建了六个吊舱:

代码语言:javascript
复制
# kubectl get pods --show-labels
NAME                        READY   STATUS    RESTARTS   AGE     LABELS
nginx-d-5b686ccd46-dkpk7    1/1     Running   0          4m16s   app=mynginx,pod-template-hash=5b686ccd46
nginx-d-5b686ccd46-nz7wf    1/1     Running   0          4m16s   app=mynginx,pod-template-hash=5b686ccd46
nginx-d-5b686ccd46-vdtfr    1/1     Running   0          4m16s   app=mynginx,pod-template-hash=5b686ccd46
nginx-d2-5b686ccd46-nqmq7   1/1     Running   0          4m16s   app=mynginx,pod-template-hash=5b686ccd46
nginx-d2-5b686ccd46-nzrlc   1/1     Running   0          4m16s   app=mynginx,pod-template-hash=5b686ccd46
nginx-d2-5b686ccd46-qgjkn   1/1     Running   0          4m16s   app=mynginx,pod-template-hash=5b686ccd46

为什么会这样呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-28 15:02:14

考虑这一点: pods不是由部署直接管理的,而是由部署管理ReplicaSet的。

这可以使用

代码语言:javascript
复制
kubectl get rs
NAME                  DESIRED   CURRENT   READY   AGE
nginx-d-5b686ccd46    3         3         3       74s
nginx-d2-7c76fbbbcb   3         3         0       74s

通过指定选择器,可以选择要考虑复制集或部署的吊舱。此外,每个部署都添加了自己的标签,以便能够区分哪些荚由自己的副本集管理,哪些由其他副本集管理。

您也可以检查这一点:

代码语言:javascript
复制
kubectl get pods --show-labels  
NAME                        READY   STATUS    RESTARTS   AGE   LABELS
nginx-d-5b686ccd46-7j4md    1/1     Running   0          4m    app=mynginx,pod-template-hash=5b686ccd46
nginx-d-5b686ccd46-9j7tx    1/1     Running   0          4m    app=mynginx,pod-template-hash=5b686ccd46
nginx-d-5b686ccd46-zt4ls    1/1     Running   0          4m    app=mynginx,pod-template-hash=5b686ccd46
nginx-d2-5b686ccd46-ddcr2   1/1     Running   0          75s   app=mynginx,pod-template-hash=5b686ccd46
nginx-d2-5b686ccd46-fhvm7   1/1     Running   0          79s   app=mynginx,pod-template-hash=5b686ccd46
nginx-d2-5b686ccd46-q99ww   1/1     Running   0          83s   app=mynginx,pod-template-hash=5b686ccd46

它们作为匹配标签添加到副本集中:

代码语言:javascript
复制
spec:
  replicas: 3
  selector:
    matchLabels:
      app: mynginx
      pod-template-hash: 5b686ccd46

因为这些都是相同的,所以您可以检查吊舱并看到有一个所有者引用:

代码语言:javascript
复制
kubectl get pod nginx-d-5b686ccd46-7j4md -o yaml
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: "2021-10-28T14:53:17Z"
  generateName: nginx-d-5b686ccd46-
  labels:
    app: mynginx
    pod-template-hash: 5b686ccd46
  name: nginx-d-5b686ccd46-7j4md
  namespace: default
  ownerReferences:
  - apiVersion: apps/v1
    blockOwnerDeletion: true
    controller: true
    kind: ReplicaSet
    name: nginx-d-5b686ccd46
    uid: 7eb8fdaf-bfe7-4647-9180-43148a036184
  resourceVersion: "556"

有关这方面的更多信息可以在这里找到:https://kubernetes.io/docs/concepts/overview/working-with-objects/owners-dependents/

因此,部署(和副本集)可以消除管理哪些豆荚的歧义,其中和每一个都确保所需的副本数量。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69755024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档