3

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

4

3 回答 3

0

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

在主节点上

ps -ef | grep kube-apiserver

并检查启用插件

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

参考:SecurityContextDeny

于 2018-09-04T12:00:24.693 回答
0

如果问题确实是因为 RBAC 权限,那么您可以尝试使用集群角色创建 ClusterRoleBinding,如此处所述

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

有关使用上下文、集群和用户的更多信息,请访问此处

于 2018-06-06T07:45:01.533 回答
0
cd /etc/kubernetes

cp apiserver.conf apiserver.conf.bak

vim apiserver.conf

找到SecurityContextDeny关键字并删除它。

:wq 

systemctl restart kube-apiserver

然后修复它

于 2019-07-15T02:52:27.483 回答