OpenShift:在部署完成时通知集群的每个Pod

时间:2019-01-21 14:32:56

标签: service deployment openshift hook

我在OpenShift中有一项服务。该服务包含多个Pod。每个吊舱包含两个容器。部署策略是“滚动更新”。我需要为每个Pod创建特定的容器,以了解何时完成整个集群的当前部署。

将文件(从部署后挂钩)写入共享持久卷是最简单的正确方法吗?

1 个答案:

答案 0 :(得分:0)

一种更可靠的方法是通过OpenShift API检查可用副本的数量。

TOKEN="$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)"

curl --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt "https://openshift.default.svc.cluster.local/apis/extensions/v1beta1/namespaces/$YOUR_NAMESPACE/deployments/$YOUR_DEPLOYMENT" -H "Authorization: Bearer $TOKEN" | jq -r ".status.availableReplicas"

编辑:

API还将返回所需的副本计数为.status.replicas。因此,您可以将所需的副本数与可用副本数进行比较,以决定部署是否完成。

  "status": {
    "replicas": 2,
    "updatedReplicas": 1,
    "readyReplicas": 1,
    "availableReplicas": 1
  }
相关问题