搜索

3.8. 在特权安全上下文中使用 pod

download PDF

如果 Pod 由管道运行或任务运行,则 OpenShift Pipelines 1.3.x 及更新版本的默认配置不允许使用特权安全上下文运行 Pod。对于这样的容器集,默认服务帐户为 pipeline,与 pipelines 服务帐户关联的安全性上下文约束(SCC)是 pipelines-sccpipelines-scc SCC 与 anyuid SCC 类似,但存在细微差别,如管道 SCC 的 YAML 文件中所定义:

SecurityContextConstraints 对象示例

apiVersion: security.openshift.io/v1
kind: SecurityContextConstraints
...
fsGroup:
  type: MustRunAs
...

另外,Buildah 集群任务作为 OpenShift Pipelines 的一部分提供,使用 vfs 作为默认存储驱动程序。

3.8.1. 运行管道运行和任务运行带有特权安全上下文的 Pod

流程

要使用 特权 安全上下文运行 pod(从管道运行或任务运行中),请执行以下修改:

  • 将关联的用户帐户或服务帐户配置为具有显式 SCC。您可以使用以下任一方法执行配置:

    • 执行以下 OpenShift 命令:

      $ oc adm policy add-scc-to-user <scc-name> -z <service-account-name>
    • 或者,修改 RoleBindingRoleClusterRole 的 YAML 文件:

      RoleBinding 对象示例

      apiVersion: rbac.authorization.k8s.io/v1
      kind: RoleBinding
      metadata:
        name: service-account-name 1
        namespace: default
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: ClusterRole
        name: pipelines-scc-clusterrole 2
      subjects:
      - kind: ServiceAccount
        name: pipeline
        namespace: default

      1
      使用适当的服务帐户名称替换。
      2
      根据您使用的角色绑定,使用适当的集群角色替换。

      ClusterRole 对象示例

      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      metadata:
        name: pipelines-scc-clusterrole 1
      rules:
      - apiGroups:
        - security.openshift.io
        resourceNames:
        - nonroot
        resources:
        - securitycontextconstraints
        verbs:
        - use

      1
      根据您使用的角色绑定,使用适当的集群角色替换。
    注意

    作为最佳实践,请创建默认 YAML 文件的副本并在重复文件中进行更改。

  • 如果您不使用 vfs 存储驱动程序,请将与任务运行或管道运行关联的服务帐户配置为具有特权 SCC,并将安全上下文设置为 privileged: true
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.