获取Kubernetes部署的pod的推荐方法是什么?

时间:2018-05-20 11:27:01

标签: kubernetes kubernetes-pod kubernetes-deployment

特别是考虑到创建和更新部署所涉及的所有异步过程,我发现很难可靠地找到与给定部署的当前版本相关联的当前pod。

目前,我这样做:

  1. 为部署模板添加唯一标签。
  2. 获取部署的修订号。
  3. 获取带有标签的所有副本集。
  4. 进一步过滤它们以找到具有正确版本号的那个。
  5. 从副本集中提取pod模板哈希。
  6. 获取带有标签和pod模板哈希的所有pod。
  7. 这很尴尬和复杂。此外,我不确定(4)和(6)是否能保证只产生想要的物体。但我不能通过ownerReferences过滤,可以吗?

    是否有更强大,更简单的方式?

1 个答案:

答案 0 :(得分:0)

创建部署时,它会创建ReplicaSet,从而创建Pod。

ReplicaSet包含" ownerReferences"包含父部署的名称和UID的路径。

Pod包含与父ReplicaSet链接相同的路径。

以下是ReplicaSet信息的示例:

# kubectl get rs nginx-deployment-569477d6d8 -o yaml
apiVersion: extensions/v1beta1
kind: ReplicaSet
...
name: nginx-deployment-569477d6d8
namespace: default
ownerReferences:
- apiVersion: extensions/v1beta1
  blockOwnerDeletion: true
  controller: true
  kind: Deployment
  name: nginx-deployment
  uid: acf5fe8a-5d0e-11e8-b14f-42010a8000fc

...