首页 > 解决方案 > openfaas如何解决pod中容器的时区问题?

问题描述

我目前正在本地虚拟机的kubernetes集群上部署openfaas 。发现发布函数后启动的容器的时区与宿主机不一致。我应该如何解决这个问题?

[root@k8s-node-1 ~]# date
# Host time
2021年 06月 09日 星期三 11:24:40 CST
[root@k8s-node-1 ~]# docker exec -it 5410c0b41f7a date
# Container time
Wed Jun  9 03:24:40 UTC 2021

标签: kubernetesserverlessopenfaas

解决方案


正如@coderanger在评论部分指出的那样,时区差异与OpenFaaS.
这取决于您使用的图像,大多数图像使用UTC时区。通常这应该不是问题,但在某些特殊情况下,您可能需要更改此时区。

本文所述,您可以使用TZ环境变量来设置容器的时区(也有其他方法可以更改时区)。

如果你有自己的Dockerfile,你可以使用ENV指令来设置这个变量:
注意:这个tzdata包必须安装在容器中才能设置TZ变量。

$ cat Dockerfile
FROM nginx:latest
RUN apt-get install -y tzdata
ENV TZ="Europe/Warsaw"

$ docker build -t mattjcontainerregistry/web-app-1 .
$ docker push mattjcontainerregistry/web-app-1
$ kubectl run time-test --image=mattjcontainerregistry/web-app-1
pod/time-test created

$ kubectl exec -it time-test -- bash
root@time-test:/# date
Wed Jun  9 17:22:03 CEST 2021
root@time-test:/# echo $TZ
Europe/Warsaw

推荐阅读