K8S 创建 RBAC
RBAC基于角色的访问控制--全拼 Role-Based Access Control一、创建 K8S 账号、1、创建证书# 创建私钥openssl genrsa -out tom.key 2048# 用此私钥创建一个csr(证书签名请求)文件openssl req -new -key tom.key -subj "/CN=tom" -out tom.csr# 拿着私钥和请求文件生成证书opens
·
RBAC基于角色的访问控制--全拼 Role-Based Access Control
一、创建 K8S 账号、
1、创建证书
# 创建私钥
openssl genrsa -out tom.key 2048
# 用此私钥创建一个csr(证书签名请求)文件
openssl req -new -key tom.key -subj "/CN=tom" -out tom.csr
# 拿着私钥和请求文件生成证书
openssl x509 -req -in tom.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out tom.crt -days 365
2、生成账号
kubectl config set-credentials tom --client-certificate=./tom.crt --client-key=./tom.key --embed-certs=true
3、设置上下文参数
# 设置上下文, 默认会保存在 $HOME/.kube/config
kubectl config set-context tom@kubernetes --cluster=kubernetes --user=tom --namespace=dev
# 查看
[root@master tom]# kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* kubernetes-admin@kubernetes kubernetes kubernetes-admin
tom@kubernetes kubernetes tom dev
4、设置 默认上下文
kubectl config use-context tom@kubernetes
# 再次查看,已经切换成功
[root@master tom]# kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
kubernetes-admin@kubernetes kubernetes kubernetes-admin
* tom@kubernetes kubernetes tom dev
二、授权
这里定义了一个 RoleBinding 把名为 admin 的 ClusterRole 与 tom 绑定,这个 ClusterRole 是系统自带的,所以不用建, 这时,tom就 拥有 dev 空间的所有权限
# 本例
vim tom-admin-binding.yaml
# 内容
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: tom-admin-binding
namespace: dev
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: admin
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: User
name: tom
# 也可以自定义 Role
vim tom-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
creationTimestamp: null
name: pod-read
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- list
- get
- watch
三、访问
1、通过 API 访问
curl --cert ./tom.crt --key ./tom.key https://192.168.2.100:6443/api/v1/namespaces/dev/pods --insecure
四、其它
1、创建新的集群
kubectl config set-cluster myk8s --server="https://192.168.2.100:6443" --certificate-authority=/etc/kubernetes/pki/ca.crt --embed-certs=true
2、其它命令
kubectl config --help
更多推荐
已为社区贡献13条内容
所有评论(0)