k8s集群统一设置时间

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-deployment
  labels:
    app: example
spec:
  replicas: 1
  selector:
    matchLabels:
      app: example
  template:
    metadata:
      labels:
        app: example
    spec:
      containers:
        - name: example-container
          image: nginx:latest
          volumeMounts:
            - name: timezone
              mountPath: /etc/localtime
      volumes:
        - name: timezone
          hostPath:
            path: /etc/localtime

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

extraVolumes:
  - name: timezone
    hostPath:
      path: /etc/localtime
extraVolumeMounts:
  - name: timezone
    mountPath: /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)做准备

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流光影下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值