cat <<EOS|kubectl apply -f -
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: deployment-manager-binding
namespace: ${cert_namespace}
subjects:
- kind: User
name: ${cert_user}
apiGroup: ""
roleRef:
kind: Role
name: deployment-manager
apiGroup: ""
EOS
测试一下权限:
# 部署一个镜像
kubectl --context=${cert_user}@kubernetes run --image citizenstig/httpbin httpbin
# 显示部署和pod列表
kubectl --context=${cert_user}@kubernetes get deploy,po
Output
➜ ~ kubectl --context=${cert_user}@kubernetes get deploy,po
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
deploy/httpbin 1 1 1 1 47s
NAME READY STATUS RESTARTS AGE
po/httpbin-5c5449d8b8-qr2dz 1/1 Running 0 47s
尝试访问default namespace的资源
kubectl --context=${cert_user}@kubernetes get po --namespace=default
Output
➜ ~ kubectl --context=${cert_user}@kubernetes get po --namespace=default
Error from server (Forbidden): pods is forbidden: User "wenlg" cannot list pods in the namespace "default"