什么是 KubeSphere?
KubeSphere 是一款开源项目,在目前主流容器调度平台 Kubernetes 之上构建的企业级分布式多租户容器管理平台,提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大降低开发、测试、运维的日常工作的复杂度。
特点
- 易用
面向开发、测试、运维友好的 UI,向导式用户体验,通过 KubeSphere 控制台将 Kubernetes 的能力以一种极简的方式输送给用户。
- 灵活
除开源解决方案外,如用户对网络和存储有更高要求,可选用 青云 QingCloud 作为底层平台,可以使用商业化的网络和存储解决方案,集成青云 SDN、块存储和 NeonSAN。
- 高效
无基础设施依赖,无 Kubernetes 依赖,支持跨物理机、虚拟机、云平台部署,可以纳管不同版本、不同厂商的 Kubernetes 集群。
应用场景
KubeSphere®️ 适用于企业在数字化转型时所面临的敏捷开发与自动化运维、微服务应用架构与流量治理、自动弹性伸缩和业务高可用、DevOps 持续集成与交付等应用场景。
- 一步升级容器架构,助力业务数字化转型
企业用户部署于物理机、传统虚拟化环境的业务系统,各业务模块会深度耦合,资源不能灵活的水平扩展。KubeSphere 帮助企业将 IT 环境容器化并提供完整的运维管理功能,同时依托青云QingCloud 为企业提供强大的网络、存储支持,并可高效对接企业原监控、运维系统,一站式高效完成企业 IT 容器化改造。
- 多维管控 Kubernetes,降低运维复杂度
无论将业务架构在 Kubernetes 平台上的用户,还是使用多套来自不同厂商提供的 Kubernetes 平台的用户,复杂的运维管理使企业压力倍增。KubeSphere 可提供统一平台纳管异构 Kubernetes 集群,支持应用自动化部署,减轻日常运维压力。同时,完善的监控告警与日志管理系统有效节省运维人工成本,使企业能够将更多精力投放到业务创新上。
- 敏捷开发与自动化运维,推动企业 DevOps 落地
DevOps 将开发团队与运营团队通过一套流程或方法建立更具协作性、更高效的的关系,使得开发、测试、发布应用能够更加敏捷、高效、可靠。KubeSphere CI / CD 功能可为企业DevOps 提供敏捷开发与自动化运维。同时, KubeSphere 的微服务治理功能,帮助企业以一种细粒度的方式开发、测试和发布服务,有效推动企业 DevOps 落地。
- 灵活的微服务解决方案,一步升级云原生架构
微服务架构可轻量级构建冗余,可扩展性强,非常适合构建云原生应用程序。KubeSphere 基于主流微服务解决方案 Istio,提供无代码侵入的微服务治理平台。后续将集成 SpringCloud,便于企业构建 Java 应用,助力企业一步实现微服务架构,实现应用云原生转型。
- 基于物理环境构建全栈容器架构,释放硬件最大效能
支持在全物理环境部署全栈容器架构,利用物理交换机,为 KubeSphere 提供负载均衡器服务,同时,通过 KubeSphere 与 QingCloud VPC 以及QingStor NeonSAN 的组合,可打通负载均衡、容器平台、网络、存储全栈功能,实现真正意义上的物理环境一体化多租户容器架构解决方案,并实现自主可控、统一管理。避免虚拟化带来的性能损耗,释放硬件最大效能。
架构图
后端组件 | 功能说明 |
---|---|
ks-account | 提供用户、权限管理相关的 API |
ks-apiserver | 整个集群管理的 API 接口和集群内部各个模块之间通信的枢纽,以及集群安全控制 |
ks-apigateway | 负责处理服务请求和处理 API 调用过程中的所有任务 |
ks-console | 提供 KubeSphere 的控制台服务 |
ks-controller-manager | 实现业务逻辑的,例如创建企业空间时,为其创建对应的权限;或创建服务策略时,生成对应的 Istio 配置等 |
Metrics-server | Kubernetes 的监控组件,从每个节点的 Kubelet 采集指标信息 |
Prometheus | 提供集群、节点、工作负载、API 对象等相关监控数据与服务 |
Elasticsearch | 提供集群的日志索引、查询、数据管理等服务,在安装时也可对接您已有的 ES 减少资源消耗 |
Fluent Bit | 提供日志接收与转发,可将采集到的⽇志信息发送到 ElasticSearch、Kafka |
Jenkins | 提供 CI/CD 流水线服务 |
SonarQube | 可选安装项,提供代码静态检查与质量分析 |
Source-to-Image | 将源代码自动将编译并打包成 Docker 镜像,方便快速构建镜像 |
Istio | 提供微服务治理与流量管控,如灰度发布、金丝雀发布、熔断、流量镜像等 |
Jaeger | 收集 Sidecar 数据,提供分布式 Tracing 服务 |
OpenPitrix | 提供应用模板、应用部署与管理的服务 |
Alert | 提供集群、Workload、Pod、容器级别的自定义告警服务 |
Notification | 通用的通知服务,目前支持邮件通知 |
redis | 将 ks-console 与 ks-account 的数据存储在内存中的存储系统 |
MySQL | 集群后端组件的数据库,监控、告警、DevOps、OpenPitrix 共用 MySQL 服务 |
PostgreSQL | SonarQube 和 Harbor 的后端数据库 |
OpenLDAP | 负责集中存储和管理用户账号信息与对接外部的 LDAP |
存储 | 内置 CSI 插件对接云平台存储服务,可选安装开源的 NFS/Ceph/Gluster 的客户端 |
网络 | 可选安装 Calico/Flannel 等开源的网络插件,支持对接云平台 SDN |
除了上述列表的组件,KubeSphere 还支持 Harbor 与 GitLab 作为可选安装项,您可以根据项目需要进行安装。
一键部署 KubeSphere
第一步: 准备主机
您可以参考以下节点规格准备一台符合要求的主机节点开始 all-in-one 模式的安装。
说明:
若使用 ubuntu 16.04 建议使用其最新的版本 16.04.5;
若使用 ubuntu 18.04,则需要使用 root 用户;
若 Debian 系统未安装 sudo 命令,则需要在安装前使用 root 用户执行
apt update && apt install sudo
命令安装 sudo 命令后再进行安装。若需要选装 Harbor 和 GitLab,则主机的内存需要 16 G 以上。
操作系统 | 最低配置 |
---|---|
CentOS 7.5 (64 bit) | CPU:8 核, 内存:16 G, 系统盘:100 G |
Ubuntu 16.04/18.04 LTS (64 bit) | CPU:8 核, 内存:16 G, 系统盘:100 G |
Red Hat Enterprise Linux Server 7.4 (64 bit) | CPU:8 核, 内存:16 G, 系统盘:100 G |
Debian Stretch 9.5 (64 bit) | CPU:8 核, 内存:16 G, 系统盘:100 G |
第二步: 准备安装包
在线版 (2.0.2)
下载 KubeSphere Advanced Edition 2.0.2
安装包至待安装机器,进入安装目录。
$ curl -L https://kubesphere.io/download/stable/advanced-2.0.2 > advanced-2.0.2.tar.gz \
&& tar -zxf advanced-2.0.2.tar.gz && cd kubesphere-all-advanced-2.0.2/scripts
离线版 (2.0.2)
下载 离线安装包 (2.0.2)
至待安装机器。
$ curl -L https://kubesphere.io/download/offline/advanced-2.0.2 > advanced-2.0.2.tar.gz && tar -zxf advanced-2.0.2.tar.gz && cd kubesphere-all-offline-advanced-2.0.2/scripts
第三步: 安装 KubeSphere
KubeSphere 安装过程中将会自动化地进行环境和文件监测、平台依赖软件的安装、Kubernetes 和 etcd 的自动化安装,以及存储的自动化配置。最新的Installer 默认安装的 Kubernetes 版本是 v1.13.5,安装成功后可通过 KubeSphere 控制台右上角点击关于查看安装的版本。
说明:
通常情况您不需要修改任何配置,直接安装即可。
网络默认插件是
calico
,若您需要自定义安装参数,如网络、存储、GitLab、Harbor、负载均衡器插件等相关内容需在conf/vars.yml
配置文件中指定或修改。All-in-One 默认会用 Local Volume 即本地存储设备作为存储类型,但 Local Volume 不支持动态分配,需手动创建 Persistent Volume (PV),Installer 会预先创建 26 个可用的 10G PV 供使用。若存储空间不足时则需要手动创建,参见 Local Volume 使用方法。
支持存储类型:QingCloud 云平台块存储 (QingCloud 公有云单节点挂盘限制为 10 块)、QingStor NeonSAN、GlusterFS、Ceph RBD、NFS、Local Volume,存储配置相关的详细信息请参考 存储配置说明。
由于 Kubernetes 集群的 Cluster IP 子网网段默认是
10.233.0.0/18
,Pod 的子网网段默认是10.233.64.0/18
,因此安装 KubeSphere 的节点 IP 地址范围不应与以上两个网段有重复,若遇到地址范围冲突可在配置文件conf/vars.yaml
修改kube_service_addresses
或kube_pods_subnet
的参数。
参考以下步骤开始 all-in-one 安装:
说明:安装时间跟网络情况和带宽、机器配置、安装节点个数等因素有关,已测试过的 all-in-one 模式,在网络良好的情况下以规格列表最小配置安装用时大约为 25 分钟。
-
建议使用 root 用户安装,执行 install.sh 脚本:
$ ./install.sh
-
输入数字 1 选择第一种即 all-in-one 模式开始安装:
################################################
KubeSphere Installer Menu
################################################-
- All-in-one
-
- Multi-node
-
- Quit
################################################
https://kubesphere.io/ 2018-07-08
################################################
Please input an option: 1
- Quit
-
-
验证 KubeSphere 单节点安装是否成功:
(1) 待安装脚本执行完后,当看到如下 "Successful" 界面,则说明 KubeSphere 安装成功。
successsful!
#####################################################
### Welcome to KubeSphere! ###
#####################################################
Console: http://192.168.0.8:30880
Account: admin
Password: P@88w0rd
NOTE:Please modify the default password after login.
#####################################################
提示:如需要再次查看以上的界面信息,可在安装包目录下执行
cat kubesphere/kubesphere_running
命令查看。
(2) 若需要在外网访问,在云平台需要在端口转发规则中将内网端口 30880 转发到源端口 30880,然后在防火墙开放这个源端口,确保外网流量可以通过该端口。例如在 QingCloud 平台配置端口转发和防火墙规则,则可以参考 云平台配置端口转发和防火墙。
(3) 安装成功后,浏览器访问对应的 URL,如 http://{$公网IP}:30880,即可进入 KubeSphere 登录界面,可使用默认的用户名和密码登录 KubeSphere 控制台体验,参阅 快速入门 帮助您快速上手 KubeSphere。
注意:登陆 Console 后请在 "集群状态" 查看服务组件的监控状态,待所有组件启动完成后即可开始使用,通常所有服务组件都将在 15 分钟内启动完成。