k8s RBAC初步使用
Posted gold experience
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s RBAC初步使用相关的知识,希望对你有一定的参考价值。
背景:公司内部的线上服务使用了阿里云的EDAS,我们在IDC搭建了原生的一套k8s用于测试,放开dashboard界面给开发人员使用,不同项目的人员只能在对应的namespace使用。所以使用RBAC来简单实现,另外k8s本身可以对各个namespace资源进行控制,也方便控制各个项目的资源使用。
使用其实是比较容易的
# 给pro1命名空间创建一个sa账户
kubectl create sa pro1 -n pro1
进行角色创建和绑定,示例 yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pro1
namespace: pro1
rules:
apiGroups: [""]
resources: ["pods"]
verbs: ["*"]
apiGroups: ["apps"]
resources: ["deployments"]
verbs: ["*"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: pro1-rolebinding
namespace: pro1
subjects:
kind: ServiceAccount
name: pro1
namespace: pro1
roleRef:
kind: Role
name: pro1
apiGroup: rbac.authorization.k8s.io
权限这块划分的很细,verbs中还可以限定只list、update等,把*换成对应的权限就行,逗号分隔,如果想放开此namespace下所有resource权限,将apiGroups:后也写成*即可
查看token用于登陆dashboard
kubectl get secret -n 命名空间 |grep 用户
kubectl get secret 上面查到的 -o jsonpath={.data.token} -n 命名空间 |base64 -d
注意dashboard连接默认的命名空间是default,改成对应的namespace即可
以上是关于k8s RBAC初步使用的主要内容,如果未能解决你的问题,请参考以下文章