15.2. 创建 Pod 预设置
以下示例演示了如何创建和使用 pod 预设置。
- 添加 Admission Controller
- 管理员可以检查 /etc/origin/master/master-config.yaml 文件,以确保 pod 预设置准入控制器插件存在。如果准入控制器不存在,使用以下内容添加插件:
admissionConfig:
pluginConfig:
PodPreset:
configuration:
kind: DefaultAdmissionConfig
apiVersion: v1
disable: false
然后,重启 OpenShift Container Platform 服务:
# systemctl restart atomic-openshift-master-api atomic-openshift-master-controllers
- 创建 Pod Preset
-
管理员或开发人员创建带有
settings.k8s.io/v1alpha1API 的 pod 预设置、要注入的信息,以及要与 pod 匹配的标签选择器:
kind: PodPreset
apiVersion: settings.k8s.io/v1alpha1
metadata:
name: allow-database
spec:
selector:
matchLabels:
role: frontend
env:
- name: DB_PORT
value: "6379"
volumeMounts:
- mountPath: /cache
name: cache-volume
volumes:
- name: cache-volume
emptyDir: {}
- 创建 Pod
开发人员创建了 pod,其标签与 pod 预set 中的标签选择器匹配:
创建一个标准 pod 规格,带有与 pod 预先设置的标签选择器匹配的标签:
apiVersion: v1 kind: Pod metadata: name: website labels: app: website role: frontend spec: containers: - name: website image: ecorp/website ports: - containerPort: 80创建 pod:
$ oc create -f pod.yaml创建后检查 pod 规格:
$ oc get pod website -o yaml apiVersion: v1 kind: Pod metadata: name: website labels: app: website role: frontend annotations: podpreset.admission.kubernetes.io/allow-database: "resource version"1 spec: containers: - name: website image: ecorp/website volumeMounts:2 - mountPath: /cache name: cache-volume ports: - containerPort: 80 env:3 - name: DB_PORT value: "6379" volumes: - name: cache-volume emptyDir: {}