12.5. 配置工作负载以要求特定的 SCC


您可以将工作负载配置为需要特定的安全性上下文约束 (SCC)。当您要将特定 SCC 固定到工作负载,或者要防止集群中被另一个 SCC 抢占时,这非常有用。

如果要求特定的 SCC,在工作负载上设置 openshift.io/required-scc 注解。您可以在可设置 pod 清单模板的任何资源上设置此注解,如部署或守护进程集。

SCC 必须存在于集群中,且必须适用于工作负载,否则 pod 准入会失败。如果用户创建了 Pod,或 Pod 的服务帐户的具有 pod 命名空间中的 SCC 的 use 权限,则 SCC 被视为适用于工作负载。

警告

不要更改 live pod 清单中的 openshift.io/required-scc 注解,因为这样做会导致 pod 准入失败。要更改所需的 SCC,请更新底层 Pod 模板中的注解,这会导致 pod 被删除并重新创建。

先决条件

  • 集群中必须存在 SCC。

流程

  1. 为部署创建 YAML 文件,并通过设置 openshift.io/required-scc 注解来指定所需的 SCC:

    deployment.yaml 示例

    apiVersion: config.openshift.io/v1
    kind: Deployment
    apiVersion: apps/v1
    spec:
    # ...
      template:
        metadata:
          annotations:
            openshift.io/required-scc: "my-scc" 1
    # ...

    1
    指定需要的 SCC 的名称。
  2. 运行以下命令来创建资源:

    $ oc create -f deployment.yaml

验证

  • 验证部署使用指定的 SCC:

    1. 运行以下命令,查看 pod 的 openshift.io/scc 注解的值:

      $ oc get pod <pod_name> -o jsonpath='{.metadata.annotations.openshift\.io\/scc}{"\n"}' 1
      1
      <pod_name> 替换为部署 pod 的名称。
    2. 检查输出,并确认显示的 SCC 与您在部署中定义的 SCC 匹配:

      输出示例

      my-scc

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.