我想将Pod部署为Pod内的环境变量的时间。 我似乎无法完成这项工作。有人举过一个例子,或者有一些指针吗?
答案 0 :(得分:1)
如果您使用的是简单的广告连播,则此解决方案将对您不起作用。因为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
... ... ...
我使用的部署文件-Link
答案 1 :(得分:0)
出于好奇,您为什么要这样做?所有kubernetes对象的状态都存储在etcd中,并且可以通过k8s API进行访问。
availableReplicas: 2
conditions:
- lastTransitionTime: "2020-09-22T09:40:02Z"
lastUpdateTime: "2020-09-22T09:42:02Z"
message: ReplicaSet "nginx-demo-5f4b9dd57d" has successfully progressed.
reason: NewReplicaSetAvailable
status: "True"
type: Progressing
- lastTransitionTime: "2020-09-23T12:57:46Z"
lastUpdateTime: "2020-09-23T12:57:46Z"
message: Deployment has minimum availability.
reason: MinimumReplicasAvailable
status: "True"
type: Available```