This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.4.13. 在特权安全上下文中使用 pod
如果 Pod 由管道运行或任务运行,则 OpenShift Pipelines 1.3.x 及更新版本的默认配置不允许使用特权安全上下文运行 Pod。对于这样的容器集,默认服务帐户为 pipeline
,与 pipelines
服务帐户关联的安全性上下文约束(SCC)是 pipelines-scc
。pipelines-scc
SCC 与 anyuid
SCC 类似,但存在细微差别,如管道 SCC 的 YAML 文件中所定义:
SecurityContextConstraints
对象示例
另外,Buildah
集群任务作为 OpenShift Pipelines 的一部分提供,使用 vfs
作为默认存储驱动程序。
4.13.1. 运行管道运行和任务运行带有特权安全上下文的 Pod 复制链接链接已复制到粘贴板!
流程
要使用 特权
安全上下文运行 pod(从管道运行或任务运行中),请执行以下修改:
将关联的用户帐户或服务帐户配置为具有显式 SCC。您可以使用以下任一方法执行配置:
运行以下命令:
oc adm policy add-scc-to-user <scc-name> -z <service-account-name>
$ oc adm policy add-scc-to-user <scc-name> -z <service-account-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,修改
RoleBinding
和Role
或ClusterRole
的 YAML 文件:RoleBinding
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterRole
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 根据您使用的角色绑定,使用适当的集群角色替换。
注意作为最佳实践,请创建默认 YAML 文件的副本并在重复文件中进行更改。
-
如果您不使用
vfs
存储驱动程序,请将与任务运行或管道运行关联的服务帐户配置为具有特权 SCC,并将安全上下文设置为privileged: true
。
4.13.2. 使用自定义 SCC 和自定义服务帐户运行管道运行和任务 复制链接链接已复制到粘贴板!
使用与默认 pipelines
服务帐户关联的 pipelines-scc
安全性上下文约束(SCC)时,管道运行和任务运行 pod 可能会面临超时问题。这是因为在默认的 pipelines-scc
SCC 中,fsGroup.type
参数设置为 MustRunAs
。
有关 pod 超时的更多信息,请参阅 BZ#1995779.
为避免 pod 超时,您可以创建一个自定义 SCC,并将 fsGroup.type
参数设置为 RunAsAny
,并将它与自定义服务帐户关联。
作为最佳实践,使用自定义 SCC 和自定义服务帐户来运行管道运行和任务运行。这种方法具有更大的灵活性,在升级过程中修改默认值时不会中断运行。
流程
定义自定义 SCC,并将
fsGroup.type
参数设置为RunAsAny
:示例:自定义 SCC
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建自定义 SCC:
示例:创建
my-scc
SCCoc create -f my-scc.yaml
$ oc create -f my-scc.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建自定义服务帐户:
示例:创建一个
fsgroup-runasany
服务帐户oc create serviceaccount fsgroup-runasany
$ oc create serviceaccount fsgroup-runasany
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将自定义 SCC 与自定义服务帐户关联:
示例:将
my-scc
SCC 与fsgroup-runasany
服务帐户关联oc adm policy add-scc-to-user my-scc -z fsgroup-runasany
$ oc adm policy add-scc-to-user my-scc -z fsgroup-runasany
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要将自定义服务帐户用于特权任务,您可以通过运行以下命令将
privileged
SCC 与自定义服务帐户关联:示例:将
privileged
SCC 与fsgroup-runasany
服务帐户关联oc adm policy add-scc-to-user privileged -z fsgroup-runasany
$ oc adm policy add-scc-to-user privileged -z fsgroup-runasany
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在管道运行和任务运行中使用自定义服务帐户:
示例:Pipeline 使用
fsgroup-runasany
自定义服务帐户运行 YAMLCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例:任务使用
fsgroup-runasany
自定义服务帐户运行 YAMLCopy to Clipboard Copied! Toggle word wrap Toggle overflow