3.8. 在特权安全上下文中使用 pod
如果 Pod 由管道运行或任务运行,则 OpenShift Pipelines 1.3.x 及更新版本的默认配置不允许使用特权安全上下文运行 Pod。对于这样的容器集,默认服务帐户为 pipeline
,与 pipelines
服务帐户关联的安全性上下文约束(SCC)是 pipelines-scc
。pipelines-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>
或者,修改
RoleBinding
和Role
或ClusterRole
的 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
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
。