Kubecube
最近在github寻找一款设计原生,轻量的多集群管理 多租户管理,发现了网易开源的Kubecube,整套系统采用当前主流的VUE前端,Go后端,于是在Uk8s集群上做简单的部署对接测试,完整笔记如下
Kubecube部署过程概述
- 创建一个用于安装kubeCube 的k8s集群,做准备工作,
- 获取物料包 kubecube-installer 分发到所有master节点
- 修改/etc/kubecube/manifests/install.conf
- 为所有master节点 ApiServer 开启audit配置
- 执行/etc/kubecube/manifests/install.sh 完成kubeCube的部署
- 将其他k8s集群加入到kubeCube
kubeCube详细安装步骤
- 创建一个k8s集群,登录任意maser节点
yum install sshpass -y
KUBECUBE_VERSION=v1.0
export CUSTOMIZE="true";curl -fsSL https://kubecube.nos-eastchina1.126.net/kubecube-installer/${KUBECUBE_VERSION}/entry.sh | bash
- 将 /etc/kubecube 目录拷贝到其他master节点
- 依次登录master节点,进入/etc/kubecube/manifests 修改install.conf
INSTALL_KUBERNETES="false"
INSTALL_KUBECUBE_MEMBER="false"
MASTER_IP="<master_node_ip>"
执行 utils.sh 脚本, 确认生成配置文件,并创建/var/log/audit目录
/etc/cube/warden/webhook.config
/etc/cube/audit/audit-webhook.config
/etc/cube/audit/audit-policy.yaml
修改/etc/kubernetes/apiserver 修改并确认新增如下配置,添加配置注意上一行的 \ 换行连接符号
--audit-webhook-config-file=/etc/cube/audit/audit-webhook.config \
--audit-policy-file=/etc/cube/audit/audit-policy.yaml \
--authentication-token-webhook-config-file=/etc/cube/warden/webhook.config \
--audit-log-format=json \
--audit-log-maxage=10 \
--audit-log-maxbackup=10 \
--audit-log-maxsize=100 \
--audit-log-path=/var/log/audit
重启kube apiserver服务生效: systemctl restart kube-apiserver.service
- 所有master节点audit配置添加完毕,登录任一master节点,进入 /etc/kubecube/manifests 目录修改install.sh
注释如下部分:
#configs_for_apiserver
#if [[ ${INSTALL_KUBERNETES} = "true" ]]; then
# /bin/bash /etc/kubecube/manifests/install_k8s.sh
# if [ "$?" -ne 0 ]; then
# clog error "install kubernetes failed"
# exit 1
# fi
#
# if [[ ${PRE_DOWNLOAD} = "true" ]]; then
# clog info "offline manifests download success"
# exit 0
# fi
#else
# alert_modify_apiserver
# while read confirm
# do
# if [[ ${confirm} = "confirm" ]]; then
# break
# elif [[ ${confirm} = "exit" ]]; then
# exit 1
# else
# continue
# fi
# done
#fi
执行 install.sh 执行成功后会返回如下结果:
========================================================
========================================================
Welcome to KubeCube!
Please use 'admin/admin123' to access
'10.11.88.74:30080'
You must change password after login
========================================================
========================================================
修改KubeCube服务使用LB方式 kubectl edit svc frontend-nodeport -n kubecube-system 将 type: NodePort 修改为 type: LoadBalancer 保存退出
- 将其他k8s集群加入到kubeCube的管理中,创建一个新的Uk8s集群,将集群凭证 KubeConfig 保存为本地文件,
KubeCube控制台-> 资源管理-> 集群管理-> 添加集群导入KubeConfig配置,会生成一个bootstap.sh脚本
- 修改bootstap.sh脚本,注视掉 install_dependence 一行,将脚本传输到新的Uk8s集群节点执行,将会在KubeCube控制台页面看到新增的k8s集群
Kubecube项目源码
- Kubecube前端 https://github.com/kubecube-io/kubecube-front
- Kubecube后端 https://github.com/kubecube-io/KubeCube
- Kubecube文档 https://github.com/kubecube-io/kubecube-io.github.io
- Kubecube安装器 https://github.com/kubecube-io/kubecube-installer