16.5. 特定の SCC を必要とするワークロードの設定
特定の Security Context Constraints (SCC) を要求するようにワークロードを設定できます。これは、特定の SCC をワークロードに固定する場合、または必要な SCC がクラスター内の別の SCC によってプリエンプションされるのを防ぐ場合に役立ちます。
				特定の SCC を要求するには、ワークロードに openshift.io/required-scc アノテーションを設定します。このアノテーションは、デプロイメントやデーモンセットなど、Pod マニフェストテンプレートを設定できる任意のリソースに設定できます。
			
				SCC はクラスター内に存在し、ワークロードに適用できる必要があります。そうでない場合、Pod のアドミッションは失敗します。Pod を作成するユーザーまたは Pod のサービスアカウントが Pod の namespace で SCC の use 権限を持っている場合、SCC はワークロードに適用可能であるとみなされます。
			
					ライブ Pod のマニフェスト内の openshift.io/required-scc アノテーションを変更しないでください。変更すると、Pod のアドミッションが失敗するためです。必要な SCC を変更するには、基礎となる Pod テンプレートのアノテーションを更新します。これにより、Pod が削除され、再作成されます。
				
前提条件
- SCC はクラスター内に存在する必要があります。
手順
- デプロイメント用の YAML ファイルを作成し、 - openshift.io/required-sccアノテーションを設定して必要な SCC を指定します。- deployment.yamlの例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 必要な SCC の名前を指定します。
 
- 次のコマンドを実行して、リソースを作成します。 - oc create -f deployment.yaml - $ oc create -f deployment.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
検証
- デプロイメントで指定された SCC が使用されたことを確認します。 - 次のコマンドを実行して、Pod の - openshift.io/sccアノテーションの値を表示します。- oc get pod <pod_name> -o jsonpath='{.metadata.annotations.openshift\.io\/scc}{"\n"}'- $ oc get pod <pod_name> -o jsonpath='{.metadata.annotations.openshift\.io\/scc}{"\n"}'- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- <pod_name>をデプロイメント Pod の名前に置き換えます。
 
- 出力を調べて、表示された SCC がデプロイメントで定義した SCC と一致することを確認します。 - 出力例 - my-scc - my-scc- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow