【问题标题】:Is it possible to pass the current datetime in a kubernetes yaml env setting?是否可以在 kubernetes yaml env 设置中传递当前日期时间?
【发布时间】:2020-10-08 13:10:25
【问题描述】:

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

【问题讨论】:

  • 向下 API 没有这个。也许你可以从 helm 传递 {{ now | date "20060102150405" }}$(date)-$(uptime) 并从 shell 解析。

标签: kubernetes yaml


【解决方案1】:

如果您使用的是简单的 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
... ... ...

我使用的部署文件 - Link

【讨论】:

  • 我正在使用 Deployments,想要的是类似的东西 ~ - name: MY_POD_STARTTIME valueFrom: fieldRef: fieldPath: metadata.creationTime ~ 每次更新 pod 或部署时都会更新的东西 抱歉不清楚.你的例子让我希望它是可能的。
  • @KarimTawfik 那是不可能的。您可以做的一件事是实现 kubernetes 客户端,并从 pod 内部读取值。就是这样,您将始终得到更新。
【解决方案2】:

只是出于好奇,你为什么要这样做?所有 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```

【讨论】:

  • 我们希望将日志从每个部署导出到共享位置,并根据部署名称和创建/更新日期时间创建文件夹
猜你喜欢
  • 1970-01-01
  • 2021-05-24
  • 2012-12-21
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-19
  • 1970-01-01
相关资源
最近更新 更多