K8SRBAC详解-创新互联

一.RBAC介绍

  RBAC是kubernetes的一种认证访问授权机制,通过设置–authorization-mode=RBAC开启RBAC。RBAC的授权步骤分为两步:

1)定义角色:在定义角色时会指定此角色对于资源的访问控制的规则;

创新互联公司专注于企业全网整合营销推广、网站重做改版、岚皋网站定制设计、自适应品牌网站建设、H5技术商城建设、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为岚皋等各大城市提供网站开发制作服务。

2)绑定角色:将主体与角色进行绑定,对用户进行访问授权。

如下是官网的图解:
K8S RBAC详解

二. role和clusterrole

role是权限的定义,在kubernetes中角色分为两种一种是role针对特定的命名空间,一种是clusterrole在整个集群范围内都生效。

例子如下:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: default
  name: pod-reader
rules:
- apiGroups: [""] # "" indicates the core API group
  resources: ["pods"]
  verbs: ["get", "watch", "list"]

clusterrole 例子如下:

kind:ClusterRole
apiVersion:rbac.authorization.k8s.io/v1
metadata:
  name:secret-reader
rules:
- apiGroups:[""]
  resources:["secrets"] #明确资源类型
  verbs:["get","watch","list"]

三. serviceaccount
    Service account是为了方便Pod里面的进程调用Kubernetes API或其他外部服务而设计的,可以简单的理解为服务账户,一般RBAC的最普遍的使用都是使用serviceaccount,因为k8s默认的user资源是不在集群管理内的,而且使用方式过于繁琐。serviceaccount可以简单方便的实现认证和授权。
四. RoleBinding和clusterrolebinging
    定义好了角色也就是一个权限的集合,然后创建了一个serviceaccount也就是一个服务账号,然后将这两个东西绑定起来,就是授权的过程了。
例子如下:

kind:RoleBinding
apiVersion:rbac.authorization.k8s.io/v1
metadata:
  name:read-pods
  namespace:default
subjects: #主体
- kind:ServiceAccount
  name:jane
  apiGroup:rbac.authorization.k8s.io
roleRef: #引用的角色
  kind:Role
  name:pod-reader
  apiGroup:rbac.authorization.k8s.io

集群角色绑定同上

kind:ClusterRoleBinding
apiVersion:rbac.authorization.k8s.io/v1
metadata:
  name:read-secrets-global
subjects:
- kind:ServiceAccount
  name:manager
  apiGroup:rbac.authorization.k8s.io
roleRef:
  kind:ClusterRole
  name:secret-reader
  apiGroup:rbac.authorization.k8s.io

这样就完成了一个完整的授权!!!

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文题目:K8SRBAC详解-创新互联
URL地址:http://ybzwz.com/article/dodeee.html