第二章 九析帶你輕鬆完爆 k8s pod 時間設置

本系列文章:
nginx

第一章:九析帶你輕鬆完爆 k8s pod 日期介紹docker

第二章:九析帶你輕鬆完爆 k8s pod 時間設置api

目錄app

1 PodPreset 介紹ide

2 PodPreset 開啓spa

    2.1 PodPreset 確認
orm

    2.2 PodPreset 開啓
server

3 PodPreset 建立blog

4 PodPreset 驗證ip


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 時間修改被輕鬆完爆。

相關文章
相關標籤/搜索