第二章 九析带你轻松完爆 k8s pod 时间设置

本系列文章:

第一章:九析带你轻松完爆 k8s pod 日期介绍

第二章:九析带你轻松完爆 k8s pod 时间设置

目录

1 PodPreset 介绍

2 PodPreset 开启

    2.1 PodPreset 确认

    2.2 PodPreset 开启

3 PodPreset 创建

4 PodPreset 验证


1 PodPreset 介绍

        上小节中我们知道了 docker 容器默认会使用 UTC(国际标准时间),因为我们是 CST(北京时间),因此容器内时间会比北京时间晚了 8 个小时。

        如何批量修改容器时间,使其跟我们使用的北京时间保持同步呢?可以使用 PodPreset 实现。

        PodPreset 是 k8s API 资源,作用是在创建 Pod 时预设(preset)信息,比如 secrets、configmap、环境变量、volume mounts 等。有了 PodPreset,我们就不必显示为每个 Pod 编写所需信息,而只需执行 PodPreset API,自动将这些信息注入到指定的 Pod 容器中。

        有关 PodPreset 说明,请点击查看。


2 PodPreset 开启

2.1 PodPreset 确认

        PodPreset 在 K8S 中的资源类型为 settings.k8s.io/v1alpha1,默认并不开启。查看命令:

kubectl api-versions

        或者:

kubectl get podpreset

1.pngspacer.gif2.2 PodPreset 开启

        编辑 /etc/kubernetes/manifests/kube-apiserver.yaml 配置文件,在启动参数新增 runtime-config 选项;在原有 enable-admission-plugins 选项中追加 PodPreset

--runtime-config=settings.k8s.io/v1alpha1=true // 新增

--enable-admission-plugins=NodeRestriction,PodPreset // 追加

clipboard2.pngspacer.gif        需要注意:

第一:如果集群是多 master,那么每个 master 都要修改。

第二:修改完 kube-apiserver.yaml 文件后,apiserver 会自动重启,因此需要等一段时间


3 PodPreset 创建

        编写资源文件 pod-preset.yaml:

apiVersion: settings.k8s.io/v1alpha1

kind: PodPreset

metadata:

 name: pod-env-preset

 namespace: default

spec:

 selector:

   matchLabels:

     app: nginx

 volumeMounts:

   - mountPath: /etc/localtime

     name: localtime

 volumes:

   - name: localtime

     hostPath:

       path: /etc/localtime

        创建 Podpreset 资源:

kubectl apply -f pod-preset.yaml

        查看 Podpreset 资源:

kubectl get podpreset

clipboard3.pngspacer.gif


4 PodPreset 验证

        特别注意 PodPreset 作用范围是 namespace。所以在创建 pod 资源时,namespace 要正确:

        编写资源文件 pod.yaml :

apiVersion: v1

kind: Pod

metadata:

  name: nginx

  namespace: default

  labels:

    app: nginx

spec:

  containers:

  - name: nginx

    image: nginx

    ports:

      - containerPort: 80

        创建 pod 资源:

kubectl apply -f pod.yaml

        创建 pod 成功后,进入 pod 容器查看时间:

kubectl exec -it nginx /bin/sh

clipboard4.png

        自此,pod preset 时间修改被轻松完爆。

猜你喜欢

转载自blog.51cto.com/14625168/2462155