# 2021-01-03 #「Kubernetes Objects」- PodPreset(學習筆記)
使用 PodPreset 資源,可以在 Pod 建立時,自動修改 Pod 模板。
使用 label selector 選擇要修改的 Pod 物件。
能夠注入的屬性有:secret objects / ConfigMap objects / storage volumes / container volume mounts / environment variables
相關文件
Pod Preset => overview
Injecting data into a Pod using PodPreset
the design proposal for PodPreset
第一步、啟用 PodPreset 資源
Kubernetes v1.16.2/Pod Preset
Kubernetes v1.16.2/kube-apiserver
Kubernetes v1.16.2/API OVERVIEW/PodPreset v1alpha1 settings.k8s.io
how does kube-apiserver restart after editing /etc/kubernetes/manifests/kube-apiserver.yaml
Kubernetes v1.16.2,vim /etc/kubernetes/manifests/kube-apiserver.yaml
- --runtime-config=settings.k8s.io/v1alpha1=true - --enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota,PodPreset
由於 API Server 是靜態 Pod 資源,因此在修改配置後,kubelet 會自動重啟 API Server 元件。
第二步、定義 PodPreset 資源
由於很多映象沒有正確設定時區,因此我們計劃使用 PodPreset 資源設定時區:
apiVersion: settings.k8s.io/v1alpha1 kind: PodPreset metadata: name: etc-localtime spec: selector: # 如果 POD 設定 localtime: image 標籤 ,則不應用 matchExpressions: - operator: "NotIn" key: "localtime" values: - "image" volumeMounts: - mountPath: /etc/localtime name: etc-localtime readOnly: true volumes: - name: etc-localtime hostPath: path: /etc/localtime
第三步、建立 Pod 測試
將應用 PodPreset 的資源:
apiVersion: v1 kind: Pod metadata: name: counter namespace: default spec: containers: - name: count image: busybox args: [/bin/sh, -c, 'i=0; while true; do echo "$i: $(date)"; i=$((i+1)); sleep 1; done']
將忽略 PodPreset 的資源:
apiVersion: v1 kind: Pod metadata: name: counter-localtime-image namespace: default labels: localtime: image spec: containers: - name: count image: busybox args: [/bin/sh, -c, 'i=0; while true; do echo "$i: $(date)"; i=$((i+1)); sleep 1; done']
參考文獻
K4NZ/PodPreset(學習筆記)
Pod Preset
Injecting data into a Pod using PodPreset
the design proposal for PodPreset
CHAPTER 15. INJECTING INFORMATION INTO PODS USING POD PRESETS