K8S 创建 RBAC
k8s 创建 Rbac
2023-09-14 09:16:40 时间
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
相关文章
- Prometheus 基于k8s服务发现通过Cadvisor监控Kubernetes
- k8s设置默认存储类的命令
- K8S网络策略示例
- k8s之创建基于sa的访问凭据kubeconfig文件
- k8s四层网络
- Istio 自动注入 sidecar 不成功及k8s安装istio后pod无法创建解决方案
- k8s kubectl expose命令使用详解
- kubeadm集群修改k8s证书时间到99年
- K8S 基于NFS实现文件集群间共享
- K8S Dashboard部署tomcat集群
- 群晖 创建nfs 共享文件夹 k8s 使用
- (2022版)一套教程搞定k8s安装到实战 | Secret
- k8s之安装 Kubernetes 多集群管理工具 - Kuboard v2
- k8s hpa弹性伸缩和namespace(十)
- k8s实现tomcat+mysql容器之间相互访问(九)
- K8S 集群应用配置coredns实现访问内网域名 —— 筑梦之路
- k8s 命令创建pod
- 【云原生 | Kubernetes 系列】--K8s环境rdb,cefs的使用
- K8S 创建 ConfigMap
- K8S 创建 Deployment