如何在 Kubernetes / openShift 中使用自定义 SCC

how to use custom SCC in Kubernetes / openShift

我想在 deployment.yaml 上使用自定义安全内容上下文。 所以我的一位同事创建了一个自定义 SCC 并应用了它。

$oc get scc 
restricted-plus  false <no value>  MustRunAs  MustRunAsRange  MustRunAs  RunAsAny  <no value>  false      ["configMap","downwardAPI","emptyDir","persistentVolumeClaim","projected","secret"]

kubernetes documentation 上,他们展示了如何将 scc 与 .json 文件一起使用,但没有展示如何调用已在集群上加载的 scc。

没关系,所以我在 deployment.yaml

上试过了
template:
  metadata: 
    creationTimestamp: null 
    labels:
      app: test-app
  spec:
    securityContext:
      seccomProfiles:
        localhostProfile: restricted-plus:
    containers:
    - args: 

不幸的是它不起作用:(

如何在 deployment.yaml 上使用自定义 scc restricted-plus

首先,SCC 是 OpenShift 特有的。它们在 Kubernetes 中不存在(SCC 与 seccomp 配置文件不同)。

您没有“使用您的自定义 SCC”。相反,您创建 SCC,然后创建 roles/rolebindings 以允许给定用户访问“使用”它。

现在,当该用户尝试创建一个 pod 时,会使用允许该 pod 的最严格的 SCC。由于用户现在有更多可用的 SCC,更宽松的 pods 将能够被接纳到集群中。

https://docs.openshift.com/container-platform/4.9/authentication/managing-security-context-constraints.html 有更多详细信息。