首页 > 解决方案 > 是否可以在 kubernetes yaml env 设置中传递当前日期时间?

问题描述

我想将 pod 部署为 pod 内的环境变量的时间。不过,我似乎无法完成这项工作。任何人都有一个关于如何做到这一点的例子或者一些指针?

标签: kubernetesyaml

解决方案


如果您使用的是简单的 pod,那么此解决方案将不适合您。因为 pod 的 env 字段一旦创建就变得不可变。

但是如果您使用托管 pod(即部署、statefulset 等),您可以使用kubectl set env命令来更新环境变量。

$ kubectl get deployment nginx-deployment -o=jsonpath='{.metadata.creationTimestamp}'
2020-10-07T13:24:49Z

$ kubectl set env deployment/nginx-deployment CREATIONTIME=$(kubectl get deployment nginx-deployment -o=jsonpath='{.metadata.creationTimestamp}')
deployment.apps/nginx-deployment env updated

$ kubectl exec -it nginx-deployment-7657f96b7f-6w8lf -- env
... ... ...
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=nginx-deployment-7657f96b7f-6w8lf
NGINX_VERSION=1.15.4-1~stretch
NJS_VERSION=1.15.4.0.2.4-1~stretch
CREATIONTIME=2020-10-07T13:24:49Z
... ... ...

我使用的部署文件 -链接


推荐阅读