1. 背景
- 想体验KubesphereV2.1.1版本部分功能
- Kubesphere社区提供的在线DEMO环境比较简单,满足不了我想体验的功能
- Kubesphere社区ks-installer安装工具相对较重
- 使用简单的kubernets部署yaml文件搭建一套最简Kubesphere环境(基本核心组件,不包括Jenkins/Monitor/Devops/Sonarqube等增值服务)
2. 环境说明
- macos版本为:mojave-10.14
- minikube版本为:v1.5.2
- kubernetes版本为:v1.14.3
- kubesphere版本为:v2.1.1
3. 部署文件
所有的部署文件,都是从ks-installer项目抽取,文件名称可能与ks-installer不一样(注意ks-installer版本为v2.1.1)
部署文件地址:TODO
4. 部署顺序
当时部署顺序是参考社区API架构来安装的,即从上到下,从左到右(最上应该为ks-console),后面安装过程中碰到一些依赖问题,总结后应先安装基础资源,再安装组件会比较好
4.1 创建命名空间
命名空间kubesphere-controls-system必须存在,否则会导致ks-account启动失败;原因是ks-account会在kubesphere-controls-system命名空间下创建kubectl-admin-pod
kubectl create ns kubesphere-system
kubectl create ns kubesphere-controls-system
4.2 创建CRD资源
ks-account组件启动时依赖tenant_v1alpha1_workspace.yaml资源,而ks-controller-manager组件启动时依赖app_v1beta1_application.yaml资源
kubectl create -f ks-account/tenant_v1alpha1_workspace.yaml
kubectl create -f ks-controller-manager/app_v1beta1_application.yaml
4.3 创建配置或秘钥资源
kubectl create -f ks-account/ks-account-config-secret.yaml
kubectl create -f ks-apigateway/ks-apigateway-config.yaml
kubectl create -f ks-apigateway/kubesphere-config.yaml
kubectl -n kubesphere-system create configmap ks-router-config --from-file=ingress-controller.yaml=./ks-apiserver/ingress-controller.yaml --from-file=ingress-controller-svc.yaml=./ks-apiserver/ingress-controller-svc.yaml
kubectl create -f ks-console/ks-console-config.yaml
kubectl create -f ks-console/ks-console-context.yaml
kubectl create -f ks-console/sample-bookinfo-configmap.yaml
4.4 创建基础服务
- 部署单节点redis,组件ks-console和ks-account有使用(在ks-installer工具中使用是redis-ha)
kubectl create -f ks-console/redis-pvc.yaml
kubectl create -f ks-console/redis-svc.yaml
kubectl create -f ks-console/redis-deploy.yaml
- 部署单节点openldap,组件ks-account有使用(在ks-installer工具中使用是openldap集群)
kubectl create -f ks-account/openldap-deploy.yaml
4.5 创建kubesphere-controls资源
用于nginx-ingress-controller后端检查的default-http-backend服务
kubectl create -f kubesphere-controls-system/kubesphere-controls-system-deploy.yaml
4.6 创建controller-manager资源
用于kubesphere平台crd资源的控制与处理
kubectl create -f ks-controller-manager/ks-controller-manager-deploy.yaml
4.7 创建ks-account服务
kubectl create -f ks-account/ks-account-deploy.yaml
4.8 创建ks-apiserver服务
kubectl create -f ks-apiserver/ks-apiserver-deploy.yaml
4.9 创建ks-apigateway服务
kubectl create -f ks-apigateway/ks-apigateway-deploy.yaml
4.10 创建ks-console服务
kubectl create -f ks-console/ks-console-svc.yaml
kubectl create -f ks-console/ks-console-deploy.yaml
5. 部署效果
- 组件Pod情况
- 页面访问(登录成功后,可以参考社区文档创建用户和角色)
有疑问加站长微信联系(非本文作者)