zoukankan      html  css  js  c++  java
  • 【k8s】rbac-cluster-role

    环境

    1. kubernetes 1.20.6
    2. Spring Boot 2.5.0-RC1

    目标

    其中服务账号可以和角色或者集群角色进行绑定,Role 和 ClusterRole 的区别是:
    Role 有命名空间的限制,而 ClusterRole 可以跨命名空间。

    查看 ClusterRole

    [root@master manifests]# kubectl get clusterrole
    NAME                                                                   CREATED AT
    admin                                                                  2021-01-24T07:44:45Z
    cluster-admin                                                          2021-01-24T07:44:45Z
    edit                                                                   2021-01-24T07:44:45Z
    flannel                                                                2021-03-21T08:00:50Z
    ingress-nginx                                                          2021-05-01T05:21:49Z
    ingress-nginx-admission                                                2021-05-01T05:21:49Z
    kubeadm:get-nodes                                                      2021-01-24T07:44:48Z
    kubernetes-dashboard                                                   2021-03-15T14:35:02Z
    system:aggregate-to-admin                                              2021-01-24T07:44:45Z
    system:aggregate-to-edit                                               2021-01-24T07:44:45Z
    system:aggregate-to-view                                               2021-01-24T07:44:45Z
    system:auth-delegator                                                  2021-01-24T07:44:45Z
    system:basic-user                                                      2021-01-24T07:44:45Z
    system:certificates.k8s.io:certificatesigningrequests:nodeclient       2021-01-24T07:44:45Z
    system:certificates.k8s.io:certificatesigningrequests:selfnodeclient   2021-01-24T07:44:45Z
    system:certificates.k8s.io:kube-apiserver-client-approver              2021-01-24T07:44:45Z
    system:certificates.k8s.io:kube-apiserver-client-kubelet-approver      2021-01-24T07:44:45Z
    system:certificates.k8s.io:kubelet-serving-approver                    2021-01-24T07:44:45Z
    system:certificates.k8s.io:legacy-unknown-approver                     2021-01-24T07:44:45Z
    system:controller:attachdetach-controller                              2021-01-24T07:44:45Z
    system:controller:certificate-controller                               2021-01-24T07:44:45Z
    system:controller:clusterrole-aggregation-controller                   2021-01-24T07:44:45Z
    system:controller:cronjob-controller                                   2021-01-24T07:44:45Z
    system:controller:daemon-set-controller                                2021-01-24T07:44:45Z
    system:controller:deployment-controller                                2021-01-24T07:44:45Z
    system:controller:disruption-controller                                2021-01-24T07:44:45Z
    system:controller:endpoint-controller                                  2021-01-24T07:44:45Z
    system:controller:endpointslice-controller                             2021-01-24T07:44:45Z
    system:controller:endpointslicemirroring-controller                    2021-01-24T07:44:45Z
    system:controller:expand-controller                                    2021-01-24T07:44:45Z
    system:controller:generic-garbage-collector                            2021-01-24T07:44:45Z
    system:controller:horizontal-pod-autoscaler                            2021-01-24T07:44:45Z
    system:controller:job-controller                                       2021-01-24T07:44:45Z
    system:controller:namespace-controller                                 2021-01-24T07:44:45Z
    system:controller:node-controller                                      2021-01-24T07:44:45Z
    system:controller:persistent-volume-binder                             2021-01-24T07:44:45Z
    system:controller:pod-garbage-collector                                2021-01-24T07:44:45Z
    system:controller:pv-protection-controller                             2021-01-24T07:44:45Z
    system:controller:pvc-protection-controller                            2021-01-24T07:44:45Z
    system:controller:replicaset-controller                                2021-01-24T07:44:45Z
    system:controller:replication-controller                               2021-01-24T07:44:45Z
    system:controller:resourcequota-controller                             2021-01-24T07:44:45Z
    system:controller:root-ca-cert-publisher                               2021-01-24T07:44:45Z
    system:controller:route-controller                                     2021-01-24T07:44:45Z
    system:controller:service-account-controller                           2021-01-24T07:44:45Z
    system:controller:service-controller                                   2021-01-24T07:44:45Z
    system:controller:statefulset-controller                               2021-01-24T07:44:45Z
    system:controller:ttl-controller                                       2021-01-24T07:44:45Z
    system:coredns                                                         2021-01-24T07:44:48Z
    system:discovery                                                       2021-01-24T07:44:45Z
    system:heapster                                                        2021-01-24T07:44:45Z
    system:kube-aggregator                                                 2021-01-24T07:44:45Z
    system:kube-controller-manager                                         2021-01-24T07:44:45Z
    system:kube-dns                                                        2021-01-24T07:44:45Z
    system:kube-scheduler                                                  2021-01-24T07:44:45Z
    system:kubelet-api-admin                                               2021-01-24T07:44:45Z
    system:monitoring                                                      2021-01-24T07:44:45Z
    system:node                                                            2021-01-24T07:44:45Z
    system:node-bootstrapper                                               2021-01-24T07:44:45Z
    system:node-problem-detector                                           2021-01-24T07:44:45Z
    system:node-proxier                                                    2021-01-24T07:44:45Z
    system:persistent-volume-provisioner                                   2021-01-24T07:44:45Z
    system:public-info-viewer                                              2021-01-24T07:44:45Z
    system:service-account-issuer-discovery                                2021-01-24T07:44:45Z
    system:volume-scheduler                                                2021-01-24T07:44:45Z
    view                                                                   2021-01-24T07:44:45Z
    

    其中 system: 开头的是 k8s 内部需要使用的,不要去修改它。

    查看 ClusterRoleBinding

    [root@master manifests]# kubectl get clusterrolebindings.rbac.authorization.k8s.io
    NAME                                                   ROLE                                                                               AGE
    cluster-admin                                          ClusterRole/cluster-admin                                                          126d
    flannel                                                ClusterRole/flannel                                                                70d
    ingress-nginx                                          ClusterRole/ingress-nginx                                                          29d
    ingress-nginx-admission                                ClusterRole/ingress-nginx-admission                                                29d
    kubeadm:get-nodes                                      ClusterRole/kubeadm:get-nodes                                                      126d
    kubeadm:kubelet-bootstrap                              ClusterRole/system:node-bootstrapper                                               126d
    kubeadm:node-autoapprove-bootstrap                     ClusterRole/system:certificates.k8s.io:certificatesigningrequests:nodeclient       126d
    kubeadm:node-autoapprove-certificate-rotation          ClusterRole/system:certificates.k8s.io:certificatesigningrequests:selfnodeclient   126d
    kubeadm:node-proxier                                   ClusterRole/system:node-proxier                                                    126d
    kubernetes-dashboard                                   ClusterRole/cluster-admin                                                          76d
    run-nfs-client-provisioner                             ClusterRole/cluster-admin                                                          6h36m
    system:basic-user                                      ClusterRole/system:basic-user                                                      126d
    system:controller:attachdetach-controller              ClusterRole/system:controller:attachdetach-controller                              126d
    system:controller:certificate-controller               ClusterRole/system:controller:certificate-controller                               126d
    system:controller:clusterrole-aggregation-controller   ClusterRole/system:controller:clusterrole-aggregation-controller                   126d
    system:controller:cronjob-controller                   ClusterRole/system:controller:cronjob-controller                                   126d
    system:controller:daemon-set-controller                ClusterRole/system:controller:daemon-set-controller                                126d
    system:controller:deployment-controller                ClusterRole/system:controller:deployment-controller                                126d
    system:controller:disruption-controller                ClusterRole/system:controller:disruption-controller                                126d
    system:controller:endpoint-controller                  ClusterRole/system:controller:endpoint-controller                                  126d
    system:controller:endpointslice-controller             ClusterRole/system:controller:endpointslice-controller                             126d
    system:controller:endpointslicemirroring-controller    ClusterRole/system:controller:endpointslicemirroring-controller                    126d
    system:controller:expand-controller                    ClusterRole/system:controller:expand-controller                                    126d
    system:controller:generic-garbage-collector            ClusterRole/system:controller:generic-garbage-collector                            126d
    system:controller:horizontal-pod-autoscaler            ClusterRole/system:controller:horizontal-pod-autoscaler                            126d
    system:controller:job-controller                       ClusterRole/system:controller:job-controller                                       126d
    system:controller:namespace-controller                 ClusterRole/system:controller:namespace-controller                                 126d
    system:controller:node-controller                      ClusterRole/system:controller:node-controller                                      126d
    system:controller:persistent-volume-binder             ClusterRole/system:controller:persistent-volume-binder                             126d
    system:controller:pod-garbage-collector                ClusterRole/system:controller:pod-garbage-collector                                126d
    system:controller:pv-protection-controller             ClusterRole/system:controller:pv-protection-controller                             126d
    system:controller:pvc-protection-controller            ClusterRole/system:controller:pvc-protection-controller                            126d
    system:controller:replicaset-controller                ClusterRole/system:controller:replicaset-controller                                126d
    system:controller:replication-controller               ClusterRole/system:controller:replication-controller                               126d
    system:controller:resourcequota-controller             ClusterRole/system:controller:resourcequota-controller                             126d
    system:controller:root-ca-cert-publisher               ClusterRole/system:controller:root-ca-cert-publisher                               126d
    system:controller:route-controller                     ClusterRole/system:controller:route-controller                                     126d
    system:controller:service-account-controller           ClusterRole/system:controller:service-account-controller                           126d
    system:controller:service-controller                   ClusterRole/system:controller:service-controller                                   126d
    system:controller:statefulset-controller               ClusterRole/system:controller:statefulset-controller                               126d
    system:controller:ttl-controller                       ClusterRole/system:controller:ttl-controller                                       126d
    system:coredns                                         ClusterRole/system:coredns                                                         126d
    system:discovery                                       ClusterRole/system:discovery                                                       126d
    system:kube-controller-manager                         ClusterRole/system:kube-controller-manager                                         126d
    system:kube-dns                                        ClusterRole/system:kube-dns                                                        126d
    system:kube-scheduler                                  ClusterRole/system:kube-scheduler                                                  126d
    system:monitoring                                      ClusterRole/system:monitoring                                                      126d
    system:node                                            ClusterRole/system:node                                                            126d
    system:node-proxier                                    ClusterRole/system:node-proxier                                                    126d
    system:public-info-viewer                              ClusterRole/system:public-info-viewer                                              126d
    system:service-account-issuer-discovery                ClusterRole/system:service-account-issuer-discovery                                126d
    system:volume-scheduler                                ClusterRole/system:volume-scheduler                                                126d
    

    将 sa 绑定到集群角色

    [root@master ~]# kubectl get sa admin -n kube-system
    NAME    SECRETS   AGE
    admin   1         9m42s
    
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: admin-binding
    subjects:
      - kind: ServiceAccount
        name: admin
        namespace: kube-system
    roleRef:
      kind: ClusterRole
      name: cluster-admin
      apiGroup: rbac.authorization.k8s.io
    

    总结

    绑定了一个集群角色到 sa 上。

    附录

  • 相关阅读:
    SQL SERVER 导出到Oracle 问题与技巧
    oracle Array类型作为参数传入函数(存储过程) 大字符串参数解决方案
    Oracle 时间处理(加减)
    批处理(命令行)安装数据库
    导致Asp.Net站点重启的10个原因 ,记录重启原因
    关于vs2010 起始页
    SQL Server 导数据 Oracle
    MYSQL正确删除binlog的方法
    yum 安装supervisor
    redis集群配置与管理
  • 原文地址:https://www.cnblogs.com/jiangbo44/p/14956995.html
Copyright © 2011-2022 走看看