详情页标题前

腾讯云容器服务解决容器内时区不一致问题同尘科技

详情页1

操作场景

腾讯云容器服务(TKE)集群中容器系统时间默认为 UTC 协调世界时间 (Universal Time Coordinated),与节点本地所属时区 CST (上海时间)相差8个小时。在容器使用过程中,当需要获取系统时间用于日志记录、数据库存储等相关操作时,容器内时区不一致问题将会带来一系列困扰。 默认时间不支持直接以集群为单位进行修改,但可在单个容器内进行修改。本文提供了容器内时区不一致问题的多种解决方案,请选择合适的方案进行操作:方案1:Dockerfile 中创建时区文件(推荐)方案2:挂载主机时区配置到容器

操作环境

本文中所有操作步骤均在 TKE 集群节点上完成,相关操作环境如下所示,请对应您实际情形结合文档解决问题:

角色 地域 配置 操作系统 Kubernetes 版本信息
节点 华南地区(广州) CPU:1核内存::1GB带宽:1 Mbps系统盘:50 GB(普通云硬盘) CentOS Linux 7(Core) 1.16.3

问题定位

1. 参考 使用标准登录方式登录 Linux 实例(推荐),登录目标节点。 2. 执行以下命令,查看本地时间。

date

返回结果如下图所示:

腾讯云容器服务解决容器内时区不一致问题同尘科技

3. 依次执行以下命令,查看容器内 CentOS 系统默认时区。

docker run -it centos /bin/sh
date

返回结果如下图所示:

腾讯云容器服务解决容器内时区不一致问题同尘科技


对比发现,本地时间与容器内时区不一致。 4. 执行以下命令,退出容器。

exit

操作步骤

方案1:Dockerfile 中创建时区文件(推荐)

在构建基础镜像或在基础镜像的基础上制作自定义镜像时,在 Dockerfile 中创建时区文件即可解决单一容器内时区不一致问题,且后续使用该镜像时,将不再受时区问题困扰。 1. 执行以下命令,新建 Dockerfile.txt 文件。

vim Dockerfile.txt

2.i 切换至编辑模式,写入以下内容,配置时区文件。

FROM centosRUN rm -f /etc/localtime \&& ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo "Asia/Shanghai" > /etc/timezone

3.Esc,输入 :wq,保存文件并返回。 4. 执行以下命令,构建容器镜像。

docker build -t centos7-test:v1 -f Dockerfile.txt .

返回结果如下图所示:

腾讯云容器服务解决容器内时区不一致问题同尘科技

5. 依次执行以下命令,启动容器镜像并查看容器内时区。

date
docker run -it centos7-test:v1 /bin/sh
date

此时,容器内时区已与本地时间一致。如下图所示:

腾讯云容器服务解决容器内时区不一致问题同尘科技

6. 执行以下命令,退出容器。

exit

方案2:挂载主机时区配置到容器

解决容器内时区不一致问题,还可以通过挂载主机时间配置到容器的方式进行解决。该方式可以在容器启动时进行设置,也可以在 YAML 文件中使用主机路径挂载数据卷到容器。

容器启动时挂载主机时间配置到容器

挂载主机时间到容器内覆盖配置时,有以下两种选择:方式1:挂载本地 /etc/localtime:需确保该主机时区配置文件存在且时区正确。 方式2:挂载本地 /usr/share/zoneinfo/Asia/Shanghai:当本地 /etc/localtime 不存在或者时区不正确时,可选择直接挂载该配置文件。请对应实际情况,选择以下方式,进行挂载主机时间配置到容器:方式1方式2挂载本地 /etc/localtime1. 依次执行以下命令,查看本地时间并挂载本地 /etc/localtime 到容器内。

date
docker run -it -v /etc/localtime:/etc/localtime centos /bin/sh
date

返回结果如下图所示,容器内时区已与本地时间一致:

腾讯云容器服务解决容器内时区不一致问题同尘科技

2. 执行以下命令,退出容器。

exit

挂载本地 /usr/share/zoneinfo/Asia/Shanghai1. 依次执行以下命令,查看本地时间并挂载本地 /usr/share/zoneinfo/Asia/Shanghai 到容器内。

date
docker run -it -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime centos /bin/sh
date

返回结果如下图所示,容器内时区已与本地时间一致:

腾讯云容器服务解决容器内时区不一致问题同尘科技

2. 执行以下命令,退出容器。

exit

YAML 文件使用主机路径挂载数据卷到容器

本节内容以 mountPath:/etc/localtime 为例,介绍在 YAML 文件中如何通过数据卷挂载主机时区配置到容器内,解决容器内时区不一致的问题。 1. 在节点上执行以下命令,创建 pod.yaml 文件。

vim pod.yaml

2.i 切换至编辑模式,写入以下内容。

apiVersion: v1kind: Podmetadata:  name: test  namespace: defaultspec:  restartPolicy: OnFailure  containers:  - name: nginx    image: nginx-test    imagePullPolicy: IfNotPresent    volumeMounts:    - name: date-config      mountPath: /etc/localtime    command: ["sleep", "60000"]  volumes:  - name: date-config    hostPath:      path: /etc/localtime

3.Esc,输入 :wq,保存文件并返回。 4. 执行以下命令,新建该 Pod。

kubectl create -f  pod.yaml

返回结果如下图所示:

腾讯云容器服务解决容器内时区不一致问题同尘科技

5. 依次执行以下命令,查看该容器内时区。

date
kubectl exec -it test date

返回结果如下图所示,与本地系统时区一致即为成功:

腾讯云容器服务解决容器内时区不一致问题同尘科技



容器服务官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:http://www.yunxiaoer.com/148414.html

(0)
上一篇 2023年12月9日 下午12:55
下一篇 2023年12月9日 下午12:55
详情页2

相关推荐

  • 腾讯云对象存储SDK 类问题

    SDK 通用问题 通过指定文件流或文件句柄方式上传时,实际上传的内容被截断或大小为0,该如何处理? 当使用文件流或文件句柄等方式上传时,该流或句柄通常会包含一个偏移量指针,如果您在通过 COS 上传前使用了该流或句柄,那么其偏移量指针可能没有指向文件的起始位置,SDK 上传时默认从该偏移量指向位置开始读取内容,因此可能导致内容被截断或直接上传了空文件。建议您…

    腾讯云 2023年12月9日
  • 腾讯云高性能计算平台使用自定义镜像加速扩容-云小二

    背景说明 默认情况下,THPC 基于公共镜像进行扩容计算节点所需时间大概在3分钟到5分钟。如果您运行的任务对于扩容时间比较敏感,可以在扩容时选择预装 THPC 所需依赖包的自定义镜像,来加快 THPC 计算节点的扩容。注意:后续 THPC 对于集群依赖软件进行升级,可能导致通过自定义镜像加速扩容的节点无法兼容,新特性无法使用等问题。由于会跳过软件安装,如果自…

    2023年12月9日
  • 腾讯云TDSQL-C MySQL版基本设置

    本文为您介绍列存索引 CSI 的相关操作。 前提条件 已 提交工单 申请升级小内核版本至 TDSQL-C MySQL 版8.0 3.2.1。说明:针对只读实例而言,符合版本要求的情况下,4核以上的只读实例才可以开启列存索引功能。 开启或关闭 CSI 1. 在集群列表页,根据实际使用的视图模式进行进入实例详情页。页签视图列表视图1. 登录 TDSQL-C My…

    2023年12月9日
  • 腾讯云对象存储图片审核结果反馈

    功能描述 您可通过本接口反馈与预期不符的审核结果,例如色情图片被审核判定为正常或正常图片被判定为色情时可通过该接口直接反馈。本接口不会直接修改审核结果,您反馈的错误审核结果将在后台进行确认,并在后续的审核任务中生效。 授权说明 授权策略中 action 设置为 ci:ReportBadCase 。查看所有 action。 服务开通 使用该功能需提前开通数据万…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云云直播录制文件事件通知

    直播录制是根据推流域名已绑定好的录制模板实时录制直播流画面,并生成对应的录制文件存储到云点播中。而录制回调则用于推送录制文件信息,主要包括录制的开始时间、结束时间、生成的录制文件 ID、录制文件大小和文件下载地址。您需在回调模板中配置录制回调消息接收服务器地址,并将该模板与推流域名进行关联。当直播流触发录制事件后,腾讯云直播后台会将录制文件信息回调到您设置的…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。