kubernetes如何对kubectl做权限管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kubernetes如何对kubectl做权限管理相关的知识,希望对你有一定的参考价值。

参考技术A 定制kubectl可以操作k8s资源的权限,比如,对所有资源只能读取,不能增删改。

kubernetes 本身支持 RBAC 权限校验,现在的主流版本已经默认支持,并默认开启了。你也可以通过查看 apiserver 配置来看自己的k8s是否支持

我们要实现对 kubectl 权限管理,就得依赖 k8s 的 RBAC,我们知道,kubectl 默认情况下,是读取 ~/.kube/config 文件作为配置,和 k8s 的 apiserver 通信的,所以,问题的关键之一就是,我们如何生成这个配置文件。

k8s的RBAC定义了4个资源对象:Role、ClusterRole;Rolebinding、ClusterRoleBinding,其中:

那么,Subject 是什么?Subject 其实可以理解为“用户”,它有几类,分别是:User、Group、ServiceAccount,我们直接通过源码看 Subject 的定义(着重看注释!!!)

那么,Subject 在哪里?我们要绑定 Role 或者 ClusterRole,就得配置 RoleBinding 或者 ClusterRoleBinding,所以,Subject 就在 RoleBinding 或者 ClusterRoleBinding 里。下面进行实操步骤。

1、创建一个ClusterRole

2、创建 ServiceAccount

3、创建 ClusterRoleBinding,将 ClusterRole 的权限,绑定到 ServiceAccount
创建文件 clusterrolebinding-view.yml

执行命令,创建资源

4、生成配置:guest.config

5、更新 guest.config 配置

6、将 guest.config,重命名之后,放到 ~/.kube 目录下即可。

以上是关于kubernetes如何对kubectl做权限管理的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点# Kubernetes 集群权限管理那些事儿(17)

Kubernetes集群管理工具kubectl命令技巧大全

Kubernetes集群管理工具kubectl命令技巧大全

三Kubernetes集群的命令行工具kubectl

kubernetes集群命令行工具kubectl

第七章 kubernetes 集群命令行工具 kubectl