15.3. 複数の Pod の Preset の使用
複数の Pod 挿入ポリシーを挿入するために複数の Pod の Preset を使用することができます。
- Pod の Preset 受付コントローラープラグインが有効に なっていることを確認します。
環境変数、マウントポイントおよび/またはストレージボリュームを使用して、以下のような Pod の Preset を作成します。
kind: PodPreset apiVersion: settings.k8s.io/v1alpha1 metadata: name: allow-database spec: selector: matchLabels: role: frontend 1 env: - name: DB_PORT value: "6379" volumeMounts: - mountPath: /cache name: cache-volume volumes: - name: cache-volume emptyDir: {}
- 1
- Pod ラベルに一致するラベルセレクターです。
以下のように 2 つ目の Pod の Preset を作成します。
kind: PodPreset apiVersion: settings.k8s.io/v1alpha1 metadata: name: proxy spec: selector: matchLabels: role: frontend 1 volumeMounts: - mountPath: /etc/proxy/configs name: proxy-volume volumes: - name: proxy-volume emptyDir: {}
- 1
- Pod ラベルに一致するラベルセレクターです。
標準的な Pod 仕様を作成します。
apiVersion: v1 kind: Pod metadata: name: website labels: app: website role: frontend 1 spec: containers: - name: website image: ecorp/website ports: - containerPort: 80
- 1
- Pod の Preset ラベルセレクターのいずれにも一致するラベルです。
Pod を作成します。
$ oc create -f pod.yaml
作成後に Pod 仕様をチェックします。
apiVersion: v1 kind: Pod metadata: name: website labels: app: website role: frontend annotations: podpreset.admission.kubernetes.io/allow-database: "resource version" 1 podpreset.admission.kubernetes.io/proxy: "resource version" 2 spec: containers: - name: website image: ecorp/website volumeMounts: - mountPath: /cache name: cache-volume - mountPath: /etc/proxy/configs name: proxy-volume ports: - containerPort: 80 env: - name: DB_PORT value: "6379" volumes: - name: cache-volume emptyDir: {} - name: proxy-volume emptyDir: {}