Kubernetes 1.20.15 创建普通用户:ai-user,访问 ai 和 dev 空间所有资源
以下是创建 ai-user 用户的 YAML 代码:
apiVersion: v1
kind: ServiceAccount
metadata:
name: ai-user
namespace: default
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: ai-user
namespace: default
subjects:
- kind: ServiceAccount
name: ai-user
namespace: default
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: ai-user-ai
namespace: ai
subjects:
- kind: ServiceAccount
name: ai-user
namespace: default
roleRef:
kind: Role
name: admin
apiGroup: rbac.authorization.k8s.io
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: ai-user-dev
namespace: dev
subjects:
- kind: ServiceAccount
name: ai-user
namespace: default
roleRef:
kind: Role
name: admin
apiGroup: rbac.authorization.k8s.io
使用上面的代码创建 ai-user 用户,并将其绑定到 cluster-admin 角色和 ai、dev 两个空间的 admin 角色。这样,ai-user 用户就可以访问 ai 和 dev 两个空间下的所有资源。
制作 kubeconfig 文件:
- 获取 ai-user 用户的 token:
kubectl -n default describe secret $(kubectl -n default get secret | grep ai-user | awk '{print $1}')
- 将 token 内容复制到 ~/.kube/config 文件的 users 部分:
users:
- name: ai-user
user:
token: '<ai-user token>'
- 添加 ai 和 dev 两个空间的 cluster、context 和 namespace 配置:
clusters:
- name: ai
cluster:
server: https://<kubernetes api server>:6443
certificate-authority-data: <ca certificate data>
- name: dev
cluster:
server: https://<kubernetes api server>:6443
certificate-authority-data: <ca certificate data>
contexts:
- name: ai
context:
cluster: ai
user: ai-user
namespace: ai
- name: dev
context:
cluster: dev
user: ai-user
namespace: dev
完成上述配置后,就可以使用 kubectl 连接 kubernetes,访问 ai 空间名的 deployment、pod、service、stateful 等所有资源了。例如:
kubectl --context=ai get pods
kubectl --context=dev get services
原文地址: https://www.cveoy.top/t/topic/niSU 著作权归作者所有。请勿转载和采集!