【问题标题】:Kubenates RunAsUser is forbiddenKubernetes RunAsUser 被禁止
【发布时间】:2018-10-26 05:58:47
【问题描述】:

当我尝试使用非 root fsgroup(此处为 2000)创建 pod 时

apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo
spec:
  securityContext:
    runAsUser: 1000
    fsGroup: 2000
  volumes:
  - name: sec-ctx-vol
    emptyDir: {}
  containers:
  - name: sec-ctx-demo
    image: gcr.io/google-samples/node-hello:1.0
    volumeMounts:
    - name: sec-ctx-vol
      mountPath: /data/demo
    securityContext:
      allowPrivilegeEscalation: true

击球失误

Error from server (Forbidden): error when creating "test.yml": pods "security-context-demo" is forbidden: pod.Spec.SecurityContext.RunAsUser is forbidden

版本

root@ubuntuguest:~# kubectl  version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.2", GitCommit:"81753b10df112992bf51bbc2c2f85208aad78335", GitTreeState:"clean", BuildDate:"2018-04-27T09:22:21Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.2", GitCommit:"81753b10df112992bf51bbc2c2f85208aad78335", GitTreeState:"clean", BuildDate:"2018-04-27T09:10:24Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

谁能帮我在集群中设置 ClusterRoleBinding。

【问题讨论】:

    标签: kubernetes kubectl kubernetes-security


    【解决方案1】:

    如果问题确实是因为 RBAC 权限,那么您可以尝试创建集群角色为 explained here 的 ClusterRoleBinding。

    在创建 pod 时,您必须在 kubectl 客户端中使用该令牌和配置,而不是该帖子中的最后一步(使用身份验证令牌登录仪表板)。

    有关使用上下文、集群和用户的更多信息visit here

    【讨论】:

      【解决方案2】:

      在设置 Kube-API 时需要禁用准入插件 SecurityContextDeny

      在主节点上

      ps -ef | grep kube-apiserver
      

      并检查启用插件

      --enable-admission-plugins=LimitRanger,NamespaceExists,NamespaceLifecycle,ResourceQuota,ServiceAccount,DefaultStorageClass,MutatingAdmissionWebhook,DenyEscalatingExec
      

      参考:SecurityContextDeny

      【讨论】:

        【解决方案3】:
        cd /etc/kubernetes
        
        cp apiserver.conf apiserver.conf.bak
        
        vim apiserver.conf
        

        找到SecurityContextDeny关键字并删除。

        :wq 
        
        systemctl restart kube-apiserver
        

        然后修复它

        【讨论】:

          猜你喜欢
          • 2019-05-23
          • 1970-01-01
          • 2021-05-23
          • 2019-05-29
          • 1970-01-01
          • 1970-01-01
          • 2021-06-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多