Kubenates RunAsUser被禁止

时间:2018-05-16 08:58:21

标签: kubernetes kubectl kubernetes-security

当我尝试使用非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。

3 个答案:

答案 0 :(得分:0)

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

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

有关使用上下文,群集和用户visit here

的详细信息

答案 1 :(得分:0)

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

在主节点上

ps -ef | grep kube-apiserver

并检查启用插件

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

参考:SecurityContextDeny

答案 2 :(得分:0)

cd /etc/kubernetes

cp apiserver.conf apiserver.conf.bak

vim apiserver.conf

找到SecurityContextDeny关键字并将其删除。

:wq 

systemctl restart kube-apiserver

然后修复