简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

创建自定义 POD 安全策略

Astra Control 需要在其管理的集群上创建和管理 Kubernetes Pod 。如果集群使用的限制性 POD 安全策略不允许创建特权 POD 或允许 Pod 容器中的进程以 root 用户身份运行,则需要创建限制性较低的 POD 安全策略,以使 Astra Control 能够创建和管理这些 Pod 。

步骤
  1. 为集群创建一个限制性低于默认值的 POD 安全策略,并将其保存在文件中。例如:

    apiVersion: policy/v1beta1
    kind: PodSecurityPolicy
    metadata:
      name: astracontrol
      annotations:
        seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*'
    spec:
      privileged: true
      allowPrivilegeEscalation: true
      allowedCapabilities:
      - '*'
      volumes:
      - '*'
      hostNetwork: true
      hostPorts:
      - min: 0
        max: 65535
      hostIPC: true
      hostPID: true
      runAsUser:
        rule: 'RunAsAny'
      seLinux:
        rule: 'RunAsAny'
      supplementalGroups:
        rule: 'RunAsAny'
      fsGroup:
        rule: 'RunAsAny'
  2. 为 POD 安全策略创建新角色。

    kubectl-admin create role psp:astracontrol \
        --verb=use \
        --resource=podsecuritypolicy \
        --resource-name=astracontrol
  3. 将新角色绑定到服务帐户。

    kubectl-admin create rolebinding default:psp:astracontrol \
        --role=psp:astracontrol \
        --serviceaccount=astracontrol-service-account:default