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/v1alpha1
API 的 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: {}