k8s集群统一设置时间

ops/2024/9/25 23:24:53/

1 安装时间同步需要软件

yum install -y ntpdate

2 设置时间

2.1 手动设置时间

date -s "20190712 18:30:50"
hwclock --systohc

2.2 在线更新时间

ntpdate 0.asia.pool.ntp.org
# 强制把系统时间写入CMOS
clock -w

3 强制把系统时间写入CMOS

hwclock作用与clock相同 ,同是设置硬件时钟

hwclock --systohc
或者
clock -w

4 本机容器时间同步

4.1 通过挂载/etc/localtime

例如:

apiVersion: apps/v1
kind: Deployment
metadata:name: example-deploymentlabels:app: example
spec:replicas: 1selector:matchLabels:app: exampletemplate:metadata:labels:app: examplespec:containers:- name: example-containerimage: nginx:latestvolumeMounts:- name: timezonemountPath: /etc/localtimevolumes:- name: timezonehostPath:path: /etc/localtime

 我采用的是helm安装服务,可以在values.yaml中修改配置:

extraVolumes:- name: timezonehostPath:path: /etc/localtime
extraVolumeMounts:- name: timezonemountPath: /etc/localtime

4.2 通过k8tz统一pod时区

helm repo add k8tz https://k8tz.github.io/k8tz/
helm install k8tz k8tz/k8tz --set timezone=Asia/Beijing

原理:

k8tz是一个 Kubernetes 准入控制器和一个将时区注入 Pod 的 CLI 工具。可以用作手动工具来自动转换 Deployment 和 Pod 可以作为准入控制器安装并使用注释来完全自动化创建 Pod 的过程。

k8tz 可以使用hostPath的方式,或者将emptyDir 注入initContainer并用 TZif(时区信息格式) 文件填充卷。然后将emptyDir挂载到 Pod 每个容器的 /etc/localtime和 /usr/share/zoneinfo。为了确保所需的时区有效,它向所有容器添加了 TZ环境变量。

4.2.1 annotations设置

k8tz.io/inject: true/false 是否禁止注入,当注入时区操作和禁止注入同时存在时,注入时区的优先级会高于禁止注入

k8tz.io/timezone: Asia/Beijing 注入时区,时区选择根据自己需求

k8tz.io/strategy: hostpath/initcontainer 提供了挂载本地文件和init容器两种方式

4.2.2 initcontainer 设置分析

(1)k8tz的annotation设置

(2)tz环境变量指定时区

(3)挂载时区文件

将k8tz挂载目录子目录的subpath挂载至/etc/localtime目录下。

将k8tz整个目录挂载到/usr/share/zoneinfo目录下

(4)关键步骤initcontainer

初始化容器将/mnt/zoneinfo挂载定义k8tz,为(3)做准备


http://www.ppmy.cn/ops/35725.html

相关文章

正则表达式技巧篇

1、遇到需要获取一个字符串中的中文字符正则表达式 一般逻辑是使用 using System; using System.Text.RegularExpressions; class Program { static void Main() { string input "Hello 你好 World! 123 不包含中文的部分456 你好吗?"; strin…

在spring中使用bytebuddy 对bean做Aop拦截

背景 拦截spring 中的某个bean拦截其方法的调用。在其前后做一些类似于aop的操作 拦截bean MyBeanDefinitionRegistryPostProcessor import lombok.extern.slf4j.Slf4j; import net.bytebuddy.ByteBuddy; import net.bytebuddy.asm.Advice; import org.springframework.bea…

亏了亏了!双向孟德尔随机化阴性结果居然发了SCI二区(IF=6.7)

‍ 今天为诸位介绍的这篇文章是一项双向孟德尔随机化研究(MR),惊讶的是,双向因果均为阴性结果发了SCI二区!我们一起来看看! 2024年4月17日,广东医科大学附属医院的学者做了一项双向两样本孟德尔…

Java_JVM_JVMs

JVM 官方文档说明文档目录 官方文档 JVM Specification 说明 以Java SE 17为标准 文档目录 2:JVM 结构 class文件数据类型 基本数据类型引用数据类型 运行时数据区 栈帧 其他内容 对象的表示浮点数运算特殊方法 初始化方法【实例、类】多态方法 3&#xff…

解决pycharm关闭项目时一直显示正在关闭项目(解决pycharm在此窗口打开项目卡死的问题)

文章目录 💢 问题 💢🏡 演示环境 🏡💢 问题 💢 开发者们在日常工作中离不开各种强大的IDE(集成开发环境),其中PyCharm以其丰富的功能和友好的界面赢得了众多Python开发者的青睐。然而,你是否曾遇到过这样的问题:当你试图关闭PyCharm时(或在此窗口打开项目),…

MySQL商城数据库88张表结构(71—75)

71、店铺运费模板表 CREATE TABLE dingchengyu店铺运费模板表 (id int(11) NOT NULL AUTO_INCREMENT COMMENT 自增ID,shopExpressId int(11) NOT NULL COMMENT 快递ID,tempName varchar(100) NOT NULL COMMENT 模板名称,tempType tinyint(4) NOT NULL DEFAULT 1 COMMENT 模板范…

Unity射击游戏开发教程:(11)制造敌人爆炸

增加爆炸效果 爆炸一切都变得更好!尤其是当你消灭敌人时。在这篇文章中,我将讨论如何在敌人被击中时为其添加爆炸动画。 在敌人的预制件中,您将需要创建一个新的动画。查看控制动画的动画器,默认情况下将从进入动画到敌人爆炸动画。这意味着,一旦敌人被实例化,敌人爆炸…

设计模式——观察者模式(Observer)

观察者模式(Observer Pattern)是软件设计模式的一种,也被称为模型-视图模式、源-收听者模式或从属者模式。它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。当主题对象状态发生变化时,它的所有…