# 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
浙公网安备 33010602011771号