• RBAC 基于权限的访问控制 serviceaccount -- clusterRole clusterRoleBinding


    1.Role , RoleBinding 的作用对象都是namespace。

    2.通过RoleRef,可以看到,RoleBinding对象通过名字,直接引用前面定义的Role,实现subject(user)和Role的绑定


    role -- namespace -- RoleBinding -- mynamespace
                                          |
                                   roleRef -- subject -- user -- example-user
                                          |
                                   role(mynamespace) -- example-role

    3.Service Account 是面向 namespace 的;

    并且这个 Service Account 只能访问该 namespace 的资源。Service Account 和 pod、service、deployment 一样是 kubernetes 集群中的一种资源.

    4.创建一个可以访问所有 namespace 的ServiceAccount

    如果我们现在创建一个新的 ServiceAccount,需要他操作的权限作用于所有的 namespace,这个时候我们就需要使用到 ClusterRole 和 ClusterRoleBinding 这两种资源对象了

    4.1 创建serviceaccount 对象

    [root@node1 tmp]# cat xiaowei-sa2.yaml
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    name: xiaowei-sa2
    namespace: kube-system

    4.2 然后创建一个 ClusterRoleBinding 对象

    [root@node1 tmp]# cat xiaowei-clusterolebinding.yaml
    kind: ClusterRoleBinding
    apiVersion: rbac.authorization.k8s.io/v1beta1
    metadata:
    name: xiaowei-sa2-clusterrolebinding
    subjects:
    - kind: ServiceAccount
    name: xiaowei-sa2
    namespace: kube-system
    roleRef:
    kind: ClusterRole
    name: cluster-admin
    apiGroup: rbac.authorization.k8s.io

    5.从上面我们可以看到我们没有为这个资源对象声明 namespace,因为这是一个 ClusterRoleBinding 资源对象,是作用于整个集群的,我们也没有单独新建一个 ClusterRole 对象,而是使用的 cluster-admin 这个对象

    6.获取token

    $ kubectl get secret xiaowei-sa2-token-nxgqx -o jsonpath={.data.token} -n kube-system |base64 -d
    # 会生成一串很长的base64后的字符串
    参考: https://www.qikqiak.com/k8s-book/docs/30.RBAC.html
  • 相关阅读:
    ios 属性的特性
    ios 线程锁 与 线程交互
    iOS 变量名前为什么要加_下划线
    ios 常见问题
    ios 沙盒
    ios 去掉屏幕键盘的方法
    UITableView方法详解
    Image View、Text Field、Keyboard 隐藏键盘
    用php 进行对文件的操作 (上)
    文件上传-------头像上传预览
  • 原文地址:https://www.cnblogs.com/hixiaowei/p/9949933.html
Copyright © 2020-2023  润新知