kubernetes rabc 的sa创建并限制多个namespace

在实际k8s的应用中可能会限制用户对namespace的访问,一个账号访问多个namespaces 情况,经过测试后设置如下,

创建一个账号,创建sa后系统会自动创建一个kubernetes.io/service-account-token类型的secret

kubectl create serviceaccount updateuser

绑定集群权限,(分别绑定在两个不通的namespaces,绑定哪个namesapce就有哪个namespace相应的权限)

kubectl create rolebinding updateuser --clusterrole=system:controller:deployment-controller --serviceaccount=default:updateuser --namespace=default
kubectl create rolebinding updateuser --clusterrole=system:controller:deployment-controller --serviceaccount=default:updateuser --namespace=kube-system

查看

[root@k8s-master01 rbac]# kubectl describe rolebinding updateuser
Name:         updateuser
Labels:       <none>
Annotations:  <none>
Role:
  Kind:  ClusterRole
  Name:  system:controller:deployment-controller
Subjects:
  Kind            Name        Namespace
  ----            ----        ---------
  ServiceAccount  updateuser  default

查看建立的账号

kubectl get secret
kubectl describe secret updateuser-token-jqxw7

创建一个集群的配置文件

kubectl config set-cluster kubernetes --certificate-authority=/etc/kubernetes/pki/ca.crt --server="https://192.168.0.16:6443" --embed-certs=true --kubeconfig=/tmp/updateuser.conf

查看创建账号的token

D=$(kubectl get secret updateuser-token-jqxw7 -o jsonpath={.data.token}|base64 -d)

给配置文件def-ns-admin.conf添加token信息

kubectl config set-credentials updateuser --token=$D --kubeconfig=/tmp/updateuser.conf

给配置文件def-ns-admin.conf添加权限信息

kubectl config set-context updateuser@kubernetes --cluster=kubernetes --user=updateuser --kubeconfig=/tmp/updateuser.conf

给配置文件def-ns-admin.conf添加权限信息

kubectl config use-context updateuser@kubernetes --kubeconfig=/tmp/updateuser.conf

将文件拷贝到需要访问的电脑上,进行测试即可

参考:https://www.cnblogs.com/kuku0223/p/10383063.html

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值