下面给出了两个部署,它们只在名称上推迟。
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:
信息是否会被使用。否则有人能提供一些信息吗?
1条答案
按热度按时间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中的标签值而生成的。