以下是创建 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 文件:

  1. 获取 ai-user 用户的 token:
kubectl -n default describe secret $(kubectl -n default get secret | grep ai-user | awk '{print $1}')
  1. 将 token 内容复制到 ~/.kube/config 文件的 users 部分:
users:
- name: ai-user
  user:
    token: '<ai-user token>'
  1. 添加 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
Kubernetes 1.20.15 创建普通用户:ai-user,访问 ai 和 dev 空间所有资源

原文地址: https://www.cveoy.top/t/topic/niSU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录