本文主要为您介绍如何为运行在virtual-kubelet上的Pod配置不同的时区,当用户使用Pod部署应用时,希望Pod能指定不同地点的时区。您可以参考此文档。

前提条件

升级virtual-kubelet到最新版本,升级方式:

  • 阿里云 Serverless kubernetes集群:由管理员统一负责升级
  • 阿里云 托管 kubernetes集群:用户更新
  • 阿里云 专有 kubernetes集群:用户更新
  • 阿里云 自建 kubernetes集群:用户更新

Yaml示例

您需要先创建一个configmap,导入你需要指定的时区
$ kubectl create configmap tz --from-file=/usr/share/zoneinfo/Asia/Shanghai

创建ECI pod实例,主要就是把configmap mount到/etc/localtime/Shanghai目录下即可
$ cat set-timezone.yaml
apiVersion: v1
kind: Pod
metadata:
  name: timezone
spec:
  containers:
  - name: timezone
    image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/busybox:1.30
    command: [ "sleep", "10000" ]
    volumeMounts:
      - name: tz
        mountPath: /etc/localtime
        subPath: Shanghai
  volumes:
    - name: tz
      configMap:
        name: tz
  nodeSelector:
    type: virtual-kubelet
  tolerations:
  - key: virtual-kubelet.io/provider
    operator: Exists

创建Pod:

$ kubectl apply -f set-timezone.yaml

验证

登录到容器,验证时区是否设置成功。

$ kubectl get pod/timezone
NAME                  READY   STATUS    RESTARTS   AGE
set-timezone   1/1         Running   0                 7m20s

$ kubectl exec timezone -it -- sh
/ # date -R
Fri, 01 May 2020 10:00:11 +0800
/ #

已经在容器中成功设置了时区。