pod内时间时区与宿主机不一致

news2024/12/28 19:40:00

原因:pod内默认时区是UTC,宿主机时区是CST

解决方式:

一,如果仅仅是运行一个jar文件,可以使用如下命令:

 java  -jar  -Duser.timezone=GMT+08  xxx.jar

在k8s的Deployment文件中,加入上述JVM启动参数:

kind: Deployment
apiVersion: apps/v1
metadata:
  name: xxxx
  namespace: dev
  labels:
    app: xxxx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: xxxx
  template:
    metadata:
      labels:
        app: xxxx
    spec:
      containers:
        - name: xxxx
          image: xxxx
          command:
            - java
            - '-jar'
            - '-server'
            - '-Duser.timezone=GMT+08'  #这里指定时区
            - /xxx.jar

这种方式简单,但是只能针对这个java应用设定时区,其他应用的时区还是pod的时区

二,通过环境变量设定pod的时区

apiVersion: v1
kind: Pod
metadata:
  name: xxx
spec:
  containers:
  - name: xxx
    image: xxx
    env:
    - name: TZ     #时区设置的key
      value: Asia/Shanghai #时区设置的value

三,通过修改pod的配置文件中的时区与宿主机一致

思想:让pod使用宿主机的时区文件

时区的配置存储在两个文件中:/etc/timezone 和 /etc/localtime ,分别介绍一下这两个文件,如果不想关心这两个文件存的是啥,不想知道为什么要这么修改,直接看③就行

① /etc/timezone 是个文本文件,内容如下:

就是记录了使用哪个时区

②/etc/localtime并不是一个文件,而是一个软连接:

/etc/localtime所链接的这个文件是个什么文件呢?

由于系统中所有的时区文件都存储在/usr/share/zoneinfo下,其中中国的时区位于Asia目录下的Shanghai 文件中,如下图:

所以配置系统的时区,就是配置/etc/localtime这个软连接所指向的时区文件;

要修改pod的时区,就要修改/etc/timezone 和 /etc/localtime;

③ 修改pod的时区

有两种方式都可以修改pod的时区:

一是在通过Dockerfile制作镜像时,通过RUN 命令运行shell命令来修改:

FROM centos
      
RUN rm -f /etc/localtime \
&& ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone
      
# 构建容器镜像
$ docker build -t centos7-date:test -f Dockerfile.date .
      
$ docker run -it centos7-date:test /bin/sh
sh-4.2# date
Wed Mar  6 17:40:01 CST 2019

即执行如下3个命令:

rm -f /etc/localtime && ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

&& echo "Asia/Shanghai" > /etc/timezone

注意RUN后面的脚本是在容器内部执行的,所有它修改的是容器中的文件,

第一条命令:先删除原有的软连接/etc/localtime;

第二条命令:重新建立新的软连接/etc/localtime,让其指向 /usr/share/zoneinfo/Asia/Shanghai

第三条命令:将 /etc/timezone的内容修改为Asia/Shanghai

这种方式仅适用于自己制作的镜像,但是有时候我们是使用别人制作好的镜像,所以有局限性;

二是将宿主机的两个时区文件映射到容器中(这种我没有实际验证过)

apiVersion: v1
kind: Pod
metadata:
  name: time
spec:
  containers:
  - name: time
    image: nginx
    volumeMounts:
      - name: localtime
        mountPath: /etc/localtime
      - name: timezone
        mountPath: /etc/timezone
  volumes:
    - name: localtime
      hostPath:
        path: /usr/share/zoneinfo/Asia/Shanghai
    - name: timezone
      hostPath:
        path: /etc/timezone

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/195786.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文读懂I/O模型

什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll跟IO模型有什么关系?有几种经典IO模型呢?BIO、NIO、AIO到底有什么区别的? 如果这些问题,你都能很好…

hjr-微服务(六):如何保障服务稳定性

服务稳定是一个特别大的话题,一般我们用SLA描述服务的质量 SLA一般有99.9 ,99.99,就是我们常说的三个9,四个9 有两个纬度衡量 时间纬度 请求纬度 请求的成功率计算方式:SL A 成功请求/(成功请求请求失败…

【计算机网络】IP协议

网络层 在复杂的网络环境中寻找一条合适的路径传输数据 IP协议 IP指网际互连协议,Internet Protocol的缩写,是TCP/IP体系中的网络层协议。设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通…

【先进设备】仅3mm!超薄款,足底压力步态测量分析系统

产品介绍足底压力步态测量分析系统是一套可用于采集人体足底压力的装置系统,其采用了高密度薄膜压力传感器矩阵,实现足底压力分布数据自动采集和分析,兼具大量程、高采集频率、高精度、高可靠性等特点,可以采集不同疾病的步态及足…

表白生日祝福和3D表白相册

作者:BSXY_19计科_陈永跃BSXY_信息学院注:未经允许禁止转发任何内容表白生日祝福和3D表白相册1、效果与展示2、资源下载3、PC版本生日祝福4、手机版本生日祝福5、动态相册6、如何给别人看1、效果与展示 好友给了我一个链接,我点看一看原来都…

【操作系统】2、进程管理

文章目录二、进程管理2.1 进程、线程的基本概念2.1.1 进程的组成和特性2.1.2 进程的状态和转换2.1.3 进程控制(理解)2.1.4 线程的概念2.1.5 线程的实现方式2.1.5.1 用户级线程2.1.5.2 内核级线程2.1.5.3 多线程模式2.1 6 线程的状态与转换2.2 进程同步2.2.1 概念2.2.2 进程互斥…

gitee通过idea上传新的项目流程

gitee通过idea上传新的项目流程今天开始分享 一、gitee服务端处理 1、登录gitee 服务端,创建仓库 2、点击创建 点击创建 3、创建完成 4、点击复制此仓库的地址:https://gitee.com/nandao1/demo2.git 下面idea会用到 二、idea客户端处理 1、创建demo…

物流行业有什么重要的指标,如何进行数据分析?

大数据是信息时代的典型特征,即通过收集、输入、储存、管理、分析对传统数据进行整合,在互联网的发展中其重要作用。目前大数据已经应用在很多领域中,并影响着各行各业,也有越来越多的行业开始关注大数据,例如“菜鸟网…

C语言数组指针(指向数组的指针)详解

数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element)。数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存。以int arr[] { 99, 15, 100, 888, 252 };为例&am…

Homekit智能家居DIY-智能触摸面板开关

触摸开关,即通过触摸方式控制的墙壁开关,其感官场景如同我们的触屏手机,只需手指轻轻一点即可达到控制电器的目的,随着人们生活品质的提高,触摸开关将逐渐将换代传统机械按键开关。 触摸开关控制原理 触摸开关我们把…

VL6 多功能数据处理器

一、题目根据指示信号select的不同,对输入信号a,b实现不同的运算。输入信号a,b为8bit有符号数,当select信号为0,输出a;当select信号为1,输出b;当select信号为2,输出ab;当select信号为…

5、排序与分页

文章目录1 排序数据1.1 排序规则1.2 单列排序1.3 多列排序2 分页2.1 背景2.2 实现规则2.3 拓展尚硅谷MySQL数据库教程-讲师:宋红康 我们缺乏的不是知识,而是学而不厌的态度 1 排序数据 1.1 排序规则 使用 ORDER BY 子句排序 ASC(ascend&…

MySQL安装教程(windows 64位)详细教程

1.确保电脑为64位系统 2.国外官网下载地址:MySQL : Download MySQL Community Server 2.1.点击下载之后,可以选择注册Oracle账号,也可以跳过直接下载 2.2.国内下载网址:Index of /mysql/MySQL-8.0/ 2.3.下载完成后解压到某一个文…

Qt 播放音频文件的几种方式

文章目录摘要1 QMediaPlayer1.1 播放音频文件1.2 播放视频文件1.3 我遇到的问题2 QSound3 QSoundEffect4 QAudioOutput关键字: Qt、 QSound、 QSoundEffect、 QMediaPlayer、 multimedia摘要 这篇文章至少拖了有一两个月了,这不阳了,在家实…

Linux的tree命令原来用处那么大,涨知识了!

大家应该熟悉或了解 Linux 中的目录结果,它就像树的根。这正是 tree 命令的概念。它以树状方式显示当前目录及其子目录的内容。 在使用 tree 命令之前,需要首先安装。 安装 tree 大多数 Linux 发行版中都没有预安装 tree 命令,但是可以在官…

XSS Game通关教程

12.XSS Game通关教程 1、Ma Spaghet! 审查源码 一个不安全的方式&#xff0c;直接get传输somebody 输入123看看位置 ?somebody123 如下 用下input标签即可 <input onmouseoveralert(1)>当鼠标移动到输入框时触发弹窗 2、Jefff 传入的jeff在eval里&#xff0c;那就…

MySQL(二)

schema与数据类型优化 数据类型的优化 更小的通常更好 应该尽量使用可以正确存储数据的最小数据类型&#xff0c;更小的数据类型通常更快&#xff0c;因为它们占用更少的磁盘、内存和CPU缓存&#xff0c;并且处理时需要的CPU周期更少&#xff0c;但是要确保没有低估需要存储的…

项目管理:产品新人常犯的四个错误

作为产品经理&#xff0c;在刚进入职场的时候总会遇到各种各样的困难&#xff0c;产品小白常犯的错误&#xff1a; 1、拿到需求就开始写方案 很多新人在接到一个需求时&#xff0c;常常犯的错误就是直接开始写产品需求文档。很多时候我们的需求来自于老板或者甲方&#xff0c;…

LeetCode-350. 两个数组的交集 II

目录方法一&#xff1a;哈希表方法二&#xff1a;排序 双指针题目来源 350. 两个数组的交集 II 方法一&#xff1a;哈希表 由于同一个数字在两个数组中都可能出现多次&#xff0c;因此需要用哈希表存储每个数字出现的次数。对于一个数字&#xff0c;其在交集中出现的次数等于…

看板:自我管理的高效工具!

当在团队中在做看板管理的时候&#xff0c;我们一直强调的是看板中的工作项需要承载价值。通过拉动承载价值的工作项在看板中的流动&#xff0c;我们可以清晰地看到产品价值从需求端流动到交付端的进展及状态。也正因如此&#xff0c;我们需要及时识别看板中没有价值的工作项并…