kubernetes使用RBAC验证方式加入TiOps

2020-06-29  本文已影响0人  紫微圣君

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
上一篇下一篇

猜你喜欢

热点阅读