POD中的kubernetes时区(带有命令和参数)

2ul0zpep  于 2023-03-17  发布在  Kubernetes
关注(0)|答案(5)|浏览(171)

我想用命令更改时区。我知道如何应用hostpath
你知道怎么使用命令吗?

ln -snf /user/share/zoneinfor/$TZ /etc/localtime

它在容器中工作的很好。但是我不知道如何在yaml文件中使用命令和参数。

huus2vyu

huus2vyu1#

您可以通过使用特定的时区配置和hostPath卷来设置特定的时区,从而更改pod的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值更改为您想要设置的时区。

5uzkadbs

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
to94eoyn

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
x4shl7ld

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")。

i86rm4rw

i86rm4rw5#

对我来说:设置卷和volumeMounts没有帮助。在我的情况下,单独设置TZ环境就可以了。

相关问题