我想用命令更改时区。我知道如何应用hostpath。你知道怎么使用命令吗?
hostpath
ln -snf /user/share/zoneinfor/$TZ /etc/localtime
它在容器中工作的很好。但是我不知道如何在yaml文件中使用命令和参数。
huus2vyu1#
您可以通过使用特定的时区配置和hostPath卷来设置特定的时区,从而更改pod的timezone。
timezone
apiVersion: v1 kind: Pod metadata: name: busybox-sleep spec: containers: - name: busybox image: busybox args: - sleep - "1000000" volumeMounts: - name: tz-config mountPath: /etc/localtime volumes: - name: tz-config hostPath: path: /usr/share/zoneinfo/Europe/Prague type: File
如果您希望它跨所有pod或部署,则需要将volume和volumeMounts添加到所有部署文件,并将hostPath部分中的path值更改为您想要设置的时区。
hostPath
path
5uzkadbs2#
在GCP Kubernetes上,按如下方式设置TZ环境变量对我来说效果很好。
--- apiVersion: apps/v1 kind: Deployment metadata: name: demo spec: replicas: 1 selector: matchLabels: app: myapp template: metadata: labels: app: myapp spec: containers: - name: demo image: gcr.io/project/image:master imagePullPolicy: Always env: - name: TZ value: Europe/Warsaw dnsPolicy: ClusterFirst restartPolicy: Always terminationGracePeriodSeconds: 0
to94eoyn3#
在部署中,您可以通过在/etc/localtime中创建一个volumeMounts并设置它的值来实现这一点。
apiVersion: apps/v1beta1 kind: Deployment metadata: name: mariadb spec: replicas: 1 template: metadata: labels: app: mariadb spec: containers: - name: mariadb image: mariadb ports: - containerPort: 3306 name: mariadb env: - name: MYSQL_ROOT_PASSWORD value: password volumeMounts: - name: tz-config mountPath: /etc/localtime volumes: - name: tz-config hostPath: path: /usr/share/zoneinfo/Europe/Madrid
x4shl7ld4#
要在部署配置中添加“hostPath”(如前面的答案所建议),您需要是特权用户。否则,您的部署可能会在以下情况下失败:“hostPath”:不允许使用hostPath卷作为解决方法,您可以尝试以下选项之一:1.在卷旁边添加allowedHostPaths: {}。1.添加 TZ 环境变量。例如:TZ = Asia/Jerusalem(选项2类似于运行docker exec -it openshift/origin /bin/bash -c "export TZ='Asia/Jerusalem' && /bin/bash")。
allowedHostPaths: {}
TZ = Asia/Jerusalem
docker exec -it openshift/origin /bin/bash -c "export TZ='Asia/Jerusalem' && /bin/bash"
i86rm4rw5#
对我来说:设置卷和volumeMounts没有帮助。在我的情况下,单独设置TZ环境就可以了。
5条答案
按热度按时间huus2vyu1#
您可以通过使用特定的时区配置和hostPath卷来设置特定的时区,从而更改pod的
timezone
。如果您希望它跨所有pod或部署,则需要将volume和volumeMounts添加到所有部署文件,并将
hostPath
部分中的path
值更改为您想要设置的时区。5uzkadbs2#
在GCP Kubernetes上,按如下方式设置TZ环境变量对我来说效果很好。
to94eoyn3#
在部署中,您可以通过在/etc/localtime中创建一个volumeMounts并设置它的值来实现这一点。
x4shl7ld4#
要在部署配置中添加“hostPath”(如前面的答案所建议),您需要是特权用户。否则,您的部署可能会在以下情况下失败:
“hostPath”:不允许使用hostPath卷
作为解决方法,您可以尝试以下选项之一:
1.在卷旁边添加
allowedHostPaths: {}
。1.添加 TZ 环境变量。例如:
TZ = Asia/Jerusalem
(选项2类似于运行
docker exec -it openshift/origin /bin/bash -c "export TZ='Asia/Jerusalem' && /bin/bash"
)。i86rm4rw5#
对我来说:设置卷和volumeMounts没有帮助。在我的情况下,单独设置TZ环境就可以了。