大家好,我是张晋涛。
群里有个小伙伴问了我上图中这个问题,如何度量滚动升级这个过程的时间。
这个问题可以抽象为一种通用需求,适用于多种场景。
比如你是 Kubernetes 集群的管理员,你想度量这个过程中的耗时,以便发现优化点;
比如你是在做 CI/CD ,你想通过度量这个过程的耗时,来给出 CI/CD 过程的耗时;
现有方案
Kubernetes 已经提供了很方便的办法来解决此问题,也就是我回复中谈到的,通过 event 来度量即可。
比如,我们在 K8S 中,创建一个 deployment,看看这个过程中的 event 信息:
➜ ~ kubectl create ns moelove
namespace/moelove created
➜ ~ kubectl -n moelove create deployment redis --image=ghcr.io/moelove/redis:alpine
deployment.apps/redis created
➜ ~ kubectl -n moelove get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
redis 1/1 1 1 16s
➜ ~ kubectl -n moelove get events
LAST SEEN TYPE REASON OBJECT MESSAGE
27s Normal Scheduled pod/redis-687967dbc5-gsz5n Successfully assigned moelove/redis-687967dbc5-gsz5n to kind-control-plane
27s Normal Pulled pod/redis-687967dbc5-gsz5n Container image "ghcr