k8s 分给某个用户只有指定命名空间权限
给用户,只有 命名空间权限用户名为:保存为执行命令查看是否创建成功输出在 test 命名空间创建 role创建角色:保存为执行命令查看是否创建成功输出在 test 命名空间创建 人员角色关系 rolebinding保存为执行命令查看是否创建成功输出......
·
需求
给用户idea
,只有 test
命名空间权限
在 test 命名空间创建 serviceaccount
用户名为: idea
apiVersion: v1
kind: ServiceAccount
metadata:
name: idea
namespace: test
保存为sa.yaml
执行命令
kubectl apply -f sa.yaml
查看是否创建成功
kubectl get ServiceAccount -n test
输出
NAME SECRETS AGE
idea 1 88s
在 test 命名空间创建 role
创建角色: test-role
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: test-role
namespace: test
rules:
- apiGroups:
- apps
- ''
resources:
- deployments
- replicasets
- statefulsets
- daemonsets
- services
- pods
- pods/log
- pods/exec
- namespaces
verbs:
- list
- get
- create
保存为role.yaml
执行命令
kubectl apply -f role.yaml
查看是否创建成功
kubectl get Role -n test
输出
NAME CREATED AT
test-role 2022-06-10T02:13:58Z
在 test 命名空间创建 人员角色关系 rolebinding
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: test-role
namespace: test
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: test-role
subjects:
- kind: ServiceAccount
name: idea
namespace: test
保存为RoleBinding.yaml
执行命令
kubectl apply -f RoleBinding.yaml
查看是否创建成功
kubectl get RoleBinding -n test
输出
NAME ROLE AGE
test-role Role/test-role 105s
获取 test命名空间中用户 idea 的token
echo $(kubectl -n test get secret $(kubectl -n test get secret | grep idea | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)
输出的就是 idea 的token
配置 kubectl config
有需要的可以 配置使用
kubectl config set-credentials idea --token=结果token
kubectl config set-cluster mycluster --insecure-skip-tls-verify=true --server=https://192.168.0.254:6443
kubectl config set-context mycontext --cluster=mycluster --user=idea
#
kubectl config use-context mycontext
#查看test命名空间下pods
kubectl get pods -n test
–token : 上一步得出token
–server:集群地址,正常情况下如果没有更改集群默认端口,那么只要把https://192.168.0.254:6443
中的192.168.0.254
改为你的集群IP地址即可,如果有防火墙,记得开启该端口
–user:集群设置用户
更多推荐
所有评论(0)