首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
1. K8S证书
1.1. 证书知识储备
1.2. k8s 证书
2. RBAC
2.1. RBAC概述
2.1.1. RBAC实现的原理
2.1.2. 不同类型的授权方式
2.2. 模板
2.2.1. Role
2.2.2. ClusterRole
2.2.3. RoleBinding
2.2.4. ClusterRoleBinding
2.2.5. ServiceAccount
2.3. 访问APIServer方式
2.4. 案例
2.4.1. 授权User Account
3. DashBoard账户授权
3.1. 两种登陆方法
3.1.1. 使用Token
3.1.2. 使用kube-config
3.2. 常用dashboard角色设置
名称空间管理员
名称空间浏览权限
当前位置:
首页>>
技术小册>>
Kubernets合辑8-权限控制
小册名称:Kubernets合辑8-权限控制
RBAC授权 ``` [root@hdss7-200 rbac]# cat /data/k8s-yaml/base_resource/rbac/maxiaoke-user.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: maxiaoke-role namespace: app rules: - apiGroups: - "" resources: - pods - services verbs: - get - list --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: maxiaoke-rolebinding namespace: app roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: maxiaoke-role subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: maxiaoke ``` 创建必要的用户证书 ``` # kubectl 的配置文件读取顺序:--kubeconfig 参数指定 > $KUBECONFIG 环境变量指定 > ${HOME}/.kube/config # 此次以集群的CA证书为本,签署并创建一个新的 user account: # 10.4.7.201 只拷贝了一个二进制命令 kubectl 到 /root/bin/ 下,未拷贝其它任何内容K8S配置 [root@hdss7-200 ~]# cd /opt/certs [root@hdss7-200 certs]# cat maxiaoke-csr.json # 模仿 kubelet-csr.json 来修改 { "CN": "maxiaoke", "hosts": [ "127.0.0.1", "10.4.7.10", "10.4.7.21", "10.4.7.22", "10.4.7.23", "10.4.7.24", "10.4.7.25", "10.4.7.26", "10.4.7.27", "10.4.7.28" ], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "ST": "beijing", "L": "beijing", "O": "od", "OU": "ops" } ] } [root@hdss7-200 certs]# cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=client maxiaoke-csr.json | cfssl-json -bare maxiaoke [root@hdss7-200 certs]# scp maxiaoke* ca.pam 10.4.7.201:/root/certs ``` 创建config文件 ``` [root@operate-7-201 ~]# kubectl config set-cluster myk8s \ # 集群名称可以自定义 --certificate-authority=/root/certs/ca.pem \ --embed-certs=true \ --server=https://10.4.7.10:7443 \ --kubeconfig=/root/.kube/config [root@operate-7-201 ~]# kubectl config set-credentials maxiaoke \ --client-certificate=/root/certs/maxiaoke.pem \ --client-key=/root/certs/maxiaoke-key.pem \ --embed-certs=true \ --kubeconfig=/root/.kube/config [root@operate-7-201 ~]# kubectl config set-context myk8s-context \ --cluster=myk8s \ --user=maxiaoke \ --kubeconfig=/root/.kube/config [root@operate-7-201 ~]# kubectl config use-context myk8s-context --kubeconfig=/root/.kube/config [root@operate-7-201 ~]# kubectl get pod # 没有访问default名称空间 Error from server (Forbidden): pods is forbidden: User "maxiaoke" cannot list resource "pods" in API group "" in the namespace "default" [root@operate-7-201 ~]# kubectl get svc -n app # 账户创建成功 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE slb-s1 ClusterIP 192.168.219.15 <none> 80/TCP 6d21h slb-s2 ClusterIP 192.168.10.100 <none> 80/TCP 6d9h slb-s3 NodePort 192.168.1.125 <none> 80:3080/TCP 6d8h slb-s4 ClusterIP None <none> 80/TCP 6d6h [root@operate-7-201 ~]# rm -fr /root/certs ```
上一篇:
2.4. 案例
下一篇:
3. DashBoard账户授权
该分类下的相关小册推荐:
Kubernets合辑6-服务发现
Kubernets合辑4-kubernetes入门
Kubernetes中文教程(五)
Kubernetes中文教程(一)
Kubernets合辑10-网络
Kubernetes合辑1-安装Kubernetes
Kubernetes中文教程(三)
Kubernets合辑14-日志收集
Kubernets合辑5-Pod控制器
Kubernets合辑7-存储
Kubernets合辑12-配置中心
Kubernetes中文教程(二)