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/v1kind: Rolemetadata: name: pro1 namespace: pro1rules:- apiGroups: [""] resources: ["pods"] verbs: ["*"]- apiGroups: ["apps"] resources: ["deployments"] verbs: ["*"]
---kind: RoleBindingapiVersion: rbac.authorization.k8s.io/v1metadata: name: pro1-rolebinding namespace: pro1subjects:- kind: ServiceAccount name: pro1 namespace: pro1roleRef: 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初步使用的主要内容,如果未能解决你的问题,请参考以下文章

了解K8S的RBAC

Rancher中的K8S认证和RBAC

干货 | K8S 1.6新增特性之RBAC

k8s集群中的rbac权限管理

K8S 安全与RBAC

K8S 安全与RBAC