kubernetes的RBAC功能在1.5版本时,虽然还不是稳定版本,但是已经可以使用了。
一、kubernetes创建RBAC所用Token
使用方式:
创建一个ServiceAccount,然后使用ServiceAccount绑定一个集群角色即可。
1、创建ServiceAccount
apiVersion: v1
kind: ServiceAccount
metadata:
name: ServiceAccount名字
namespace: default
2、绑定ClusterRole
由于1.5时的版本,RBAC不是稳定的,所以是v1alpha1版本。
1)1.5绑定ClusterRole
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
name: ClusterRoleBinding名字
subjects:
- kind: ServiceAccount
name: ServiceAccount名字
namespace: default
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
2)更高级别版本绑定ClusterRole
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: ClusterRoleBinding名字
subjects:
- kind: ServiceAccount
name: ServiceAccount名字
namespace: default
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
3、1.5版本完整举例:
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiops
namespace: default
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
name: tiopscrb
subjects:
- kind: ServiceAccount
name: tiops
namespace: default
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
4、把上面的内容写进一个文件(假设叫tiops.yml)中,然后执行以下命令
kubectl create -f "tiops.yml"
image.png
5、就会创建一个名为tiops的ServiceAccount
image.png
6、同时会创建一个相关联的Secret
image.png
7、根据Secret查看Token
image.png
二、TiOps添加Kubernetes
1、点击TiOps的云账号页面
image.png
2、添加kubernetes云账号
image.png
如上图所示,为TiOps添加kubernetes的功能,点击确定即可添加。
备注:
1)私有云账号:账号名,可以取你任意想取的名字;
2)云平台地址:分为两个部分,路径以及端口号;路径前必须添加http或https,端口号一般为6443、8080等;
3)BearerToken:为标题一中我们获取的token(kubernetes创建RBAC所用Token);
4)MasterIp:kubernets的主控机ip,TiOps需要能够连接它;
5)容器版本:容器的版本,目前只支持1.5至1.18;
3、添加成功
image.png
成功后,该页面会显示出来!
三、使用TiOps的Kubernetes
1、云账号下的容器页面
image.png
2、操作容器
image.png
就可以在该页面操控Kubernetes了。
备注:
kubernetes1.5的版本不是默认开启RBAC的,下面说明kubernetes1.5怎么开启RBAC!
一、生成私钥
1、修改apiserver启动方式
vim /etc/kubernetes/apiserver
KUBE_ADMISSION_CONTROL="--admission-control=ServiceAccount"
默认安装的已经有如下参数了,不用再修改了!
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
2、生成serviceaccount.key
openssl genrsa -out /etc/kubernetes/serviceaccount.key 2048
3、配置并重启controller-manager
vi /etc/kubernetes/controller-manager
KUBE_CONTROLLER_MANAGER_ARGS="--service-account-private-key-file=/etc/kubernetes/serviceaccount.key"
systemctl restart kube-controller-manager
二、根据私钥生成公钥并写到apiserver中
1、根据私钥生成公钥
openssl rsa -in /etc/kubernetes/serviceaccount.key -pubout -out /etc/kubernetes/serviceaccount_pub.key
2、apiserver配置文件中配置
vim /etc/kubernetes/apiserver
KUBE_API_ARGS=" --authorization-mode=RBAC --service-account-key-file=/etc/kubernetes/serviceaccount_pub.key "
systemctl restart kube-apiserver
网友评论