kubernetes 两个部署有相同的规格,那复制体是怎么知道他们拥有哪些吊舱的?

xqkwcwgp  于 2023-04-20  发布在  Kubernetes
关注(0)|答案(1)|浏览(116)

下面给出了两个部署,它们只在名称上推迟。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment-1
spec:
  replicas: 2
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: myapp
        image: nginx:1.11

---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment-2
spec:
  replicas: 2
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: myapp
        image: nginx:1.11

应用上述方法将生成两个部署和两个复制集。

kubectl get replicasets
NAME                      DESIRED   CURRENT   READY   AGE
deployment-1-8684779b48   2         2         2       34m
deployment-2-8684779b48   2         2         2       34m

复制集的描述如下-

kubectl describe replicaset deployment-1
Name:           deployment-1-8684779b48
Namespace:      default
Selector:       app=myapp,pod-template-hash=8684779b48
Labels:         app=myapp
                pod-template-hash=8684779b48
Annotations:    deployment.kubernetes.io/desired-replicas: 2
                deployment.kubernetes.io/max-replicas: 3
                deployment.kubernetes.io/revision: 1
Controlled By:  Deployment/deployment-1
Replicas:       2 current / 2 desired
Pods Status:    2 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:  app=myapp
           pod-template-hash=8684779b48
  Containers:
   myapp:
    Image:        nginx:1.11
    Port:         <none>
    Host Port:    <none>
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Events:
  Type    Reason            Age   From                   Message
  ----    ------            ----  ----                   -------
  Normal  SuccessfulCreate  35m   replicaset-controller  Created pod: deployment-1-8684779b48-ngm5l
  Normal  SuccessfulCreate  35m   replicaset-controller  Created pod: deployment-1-8684779b48-5fz94
  Normal  SuccessfulCreate  34m   replicaset-controller  Created pod: deployment-1-8684779b48-svphx
  Normal  SuccessfulCreate  33m   replicaset-controller  Created pod: deployment-1-8684779b48-q7lh5

还有-

kubectl describe replicaset deployment-2
Name:           deployment-2-8684779b48
Namespace:      default
Selector:       app=myapp,pod-template-hash=8684779b48
Labels:         app=myapp
                pod-template-hash=8684779b48
Annotations:    deployment.kubernetes.io/desired-replicas: 2
                deployment.kubernetes.io/max-replicas: 3
                deployment.kubernetes.io/revision: 1
Controlled By:  Deployment/deployment-2
Replicas:       2 current / 2 desired
Pods Status:    2 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:  app=myapp
           pod-template-hash=8684779b48
  Containers:
   myapp:
    Image:        nginx:1.11
    Port:         <none>
    Host Port:    <none>
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Events:
  Type    Reason            Age   From                   Message
  ----    ------            ----  ----                   -------
  Normal  SuccessfulCreate  36m   replicaset-controller  Created pod: deployment-2-8684779b48-w4zws
  Normal  SuccessfulCreate  36m   replicaset-controller  Created pod: deployment-2-8684779b48-nfzxb

在上面,两个副本集都有相同的选择器值Selector: app=myapp,pod-template-hash=8684779b48现在这两个副本集如何确定下面的哪些pod属于它们,因为它们都有相同的标签-

kubectl get pods -l app=myapp -l pod-template-hash=8684779b48
NAME                            READY   STATUS    RESTARTS   AGE
deployment-1-8684779b48-q7lh5   1/1     Running   0          38m
deployment-1-8684779b48-svphx   1/1     Running   0          39m
deployment-2-8684779b48-nfzxb   1/1     Running   0          40m
deployment-2-8684779b48-w4zws   1/1     Running   0          40m

复制集输出中的Events:信息是否会被使用。否则有人能提供一些信息吗?

axr492tv

axr492tv1#

ReplicaSet与其Pod的链接是通过Pods的metadata.ownerReferences字段,该字段指定当前对象所拥有的资源。ReplicaSet获取的所有Pod都在其ownerReferences字段中具有其所属ReplicaSet的标识信息。通过此链接,ReplicaSet知道它正在维护的Pod的状态并相应地进行计划。
此外,
pod-template-hash标签由Deployment控制器添加到Deployment创建或采用的每个ReplicaSet。
此标签确保Deployment的子ReplicaSet不重叠。它是通过对ReplicaSet的PodTemplate进行散列,并使用所得散列作为添加到ReplicaSet选择器、Pod模板标签以及ReplicaSet可能具有的任何现有Pod中的标签值而生成的。

相关问题