官方中文文档:https://kubesphere.io/docs/zh-CN/introduction/what-is-kubesphere/
KubeSphere 是在 Kubernetes 之上构建的以应用为中心的企业级分布式容器平台,提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大减轻开发、测试、运维的日常工作的复杂度,旨在解决 Kubernetes 本身存在的存储、网络、安全和易用性等痛点。除此之外,平台已经整合并优化了多个适用于容器场景的功能模块,以完整的解决方案帮助企业轻松应对敏捷开发与自动化运维、DevOps、微服务治理、灰度发布、多租户管理、工作负载和集群管理、监控告警、日志查询与收集、服务与网络、应用商店、镜像构建与镜像仓库管理和存储管理等多种业务场景。后续版本还将提供和支持多集群管理、大数据、人工智能等更为复杂的业务场景。
KubeSphere 从项目初始阶段就采用开源的方式来进行项目的良性发展,相关的项目源代码和文档都在 GitHub 可见。KubeSphere 支持部署和运行在包括公有云、私有云、VM、BM 和 Kubernetes 等任何基础设施之上,并且支持在线安装与离线安装,目前已在 阿里云、腾讯云、华为云、青云、AWS、Kubernetes 上进行过部署测试。
关于KubeSphere,最好最全面最通俗易懂的一篇文章是《一文说清 KubeSphere 容器平台的价值》,链接如下:
https://www.kubernetes.org.cn/7962.html
KubeSphere,这是国内唯一一个开源的Kubernetes(k8s)发行版,它的开源不涉及任何商业意图,它不属于青云而属于社区,它极大地降低了使用Kubernetes的门槛,它的出现将加速中国企业向云原生迈进的步伐。
“发行版”的说法常用于Linux操作系统。比如,虽有Linux内核,而Ubuntu、CentOS等等叫做Linux发行版,对应的,Kubernetes就相当于内核,KubeSphere就是Kubernetes的发行版,正常人类是很难使用Linux内核和Kubenetes的,为了让大家用起来,要基于Linux内核和Kubernetes做很多周边配套,Linux和Kubenetes就好像一台光秃秃的汽车发动机,为了把它当车开,你起码得有车架子、轮胎、方向盘、刹车、……等等。
所以,开源KubeSphere的青云就像一个汽车厂,负责KubeSphere牌汽车各个组件的组装搭配,不过,这个汽车不需要花钱就能获取到,这就是青云开源KubeSphere的实质。它的意义在于加快了大家使用k8s发动机的进程,让大家都能开上KubeSphere牌汽车。
云原生能帮助企业做数字化转型,帮助企业用数字化转型获取竞争力。而KubeSphere可以让企业更快地上原生,开上汽车。
以上摘抄自https://tech.ifeng.com/c/7u6tUXwXbJU
我觉得,读完以后,醍醐灌顶,茅塞顿开
我们使用Linux的各种发行版(比如:CentOS、Ubuntu等)与Linux内核交互,极大地降低了使用Linux的门槛,而且像Ubuntu还提供了特别漂亮的桌面版,图像界面式的操作使用起来更方便。
我们当然可以使用CMD命令行窗口同Windows系统交互,所有在图形界面上完成的操作都可以通过命令行完成,但是这种操作方式的门槛极高,不利于微软推行Windows桌面操作系统。
同样的,Kubenetes就相当于内核,而KubeSphere就相当于是Kubernetes的发行版。KubeSphere提供极简体验,向导式UI,极大的降低了使用Kubenetes的门槛。
记不住Kubenetes命令不要紧,不会写Dockerfile也没关系,使用KubeSphere图像界面以后一起都变得简单了,而且它是以应用为中心的,极大地解放了运维和开发人员的生产力。
KubeSphere就是Java编程界的Spring。想想看,用了Spring以后你不需要关心各种数据库的连接,各种各样的组件都帮你集成好了,拿来就用。KubeSphere也是一样,开箱即用。
官方配置要求:k8s集群可用 CPU > 1 Core 且可用内存 > 2 G
系统 | k8s版本 | docker | ip | 主机名 | 配置 |
---|---|---|---|---|---|
centos 7.6 | 1.16.3 | 19.03.5 | 192.168.31.148 | k8s-master | 2核4G |
centos 7.6 | 1.16.3 | 19.03.5 | 192.168.31.179 | k8s-node01 | 2核4G |
KubeSphere 支持直接在 Linux 上部署集群,也支持在 Kubernetes 上部署,我这里选择后者,基本的要求如下:
注意:KubeSphere要求k8s版本 小于v1.18.0。否则会出现错误:
fatal: [localhost]: FAILED! => { "assertion": "kubernetes_version.stdout is version('v1.18.0', '<')", "changed": false, "evaluated_to": false, "msg": "The current k8s version is not supported" }
关于Kubernetes1.16.3安装,请参考链接:
https://www.cnblogs.com/xiao987334176/p/11899321.html
KubeSphere依赖于helm,关于helm安装,请参考链接:
https://www.cnblogs.com/xiao987334176/p/12752783.html
为了方便演示,这里我直接在主机k8s-node01上面安装。
创建共享目录
mkdir -p /data/kubernetes
安装组件
yum -y install nfs-utils rpcbind
编辑配置文件
vi /etc/exports
内容如下:
/data/kubernetes 192.168.31.0/24(rw,sync,no_root_squash)
注意:这里的192.168.31.0/24,表示客户端访问白名单。只有符合的ip,才能访问。
启动nfs服务
service nfs start service rpcbind start
设置开机自启动
systemctl enable nfs systemctl enable rpcbind
登录主机k8s-master,安装客户端组件
yum -y install nfs-utils rpcbind
测试nfs
# showmount -e 192.168.31.179 Export list for 192.168.31.179: /data/kubernetes 192.168.31.0/24
出现列表,表示nfs工作正常。
Kubernetes 支持多种 StorageClass,我这选择 NFS 作为集群的 StorageClass。
参考地址:https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client
登录主机k8s-master,创建目录
mkdir nfsvolume
下载yaml文件
https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/nfs-client/deploy/rbac.yaml https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/nfs-client/deploy/class.yaml https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/nfs-client/deploy/deployment.yaml
注意:以上链接,无法直接用wget下载。只能手动打开网页,复制粘贴到本地。
修改 deployment.yaml 中的两处 NFS 服务器 IP 和目录
... env: - name: PROVISIONER_NAME value: fuseim.pri/ifs - name: NFS_SERVER value: 192.168.31.179 - name: NFS_PATH value: /data/kubernetes volumes: - name: nfs-client-root nfs: server: 192.168.31.179 path: /data/kubernetes
具体的说明可以去官网查看
kubectl create -f rbac.yaml kubectl create -f class.yaml kubectl create -f deployment.yaml
注意:请确保每一个k8s node节点,安装了nfs-utils
yum -y install nfs-utils
查看storageclass
# kubectl get storageclass NAME PROVISIONER AGE managed-nfs-storage fuseim.pri/ifs 139m
查看nfs pod
# kubectl get pods NAME READY STATUS RESTARTS AGE nfs-client-provisioner-59777fb457-dkf87 1/1 Running 0 153m
确保状态正常
操作命令
kubectl patch storageclass managed-nfs-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
请注意,最多只能有一个 StorageClass 能够被标记为默认。
验证标记是否成功
# kubectl get storageclass NAME PROVISIONER AGE managed-nfs-storage (default) fuseim.pri/ifs 139m
出现了一个default,表示成功了。
过程很简单,如果你的机器资源足够,集群可用 CPU > 8 Core 且可用内存 > 16 G。建议你进行完整安装,参考链接:
https://kubesphere.io/docs/zh-CN/installation/install-on-k8s/
由于我的是在一台i7 16g内存的笔记本运行,只能最小化安装。完整版真心带不动!!!
创建目录
mkdir kubesphere
下载yaml文件
https://raw.githubusercontent.com/kubesphere/ks-installer/master/kubesphere-minimal.yaml
注意:以上链接,无法直接用wget下载。只能手动打开网页,复制粘贴到本地。
部署 KubeSphere
kubectl apply -f kubesphere-minimal.yaml
这个过程根据你实际网速,实际使用时间长度有所不同。
等待1分钟,你可以通过如下命令查看实时的日志输出。
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
当你看到如下日志输出,证明你的 KubeSphere 部署成功
##################################################### ### Welcome to KubeSphere! ### ##################################################### Console: http://192.168.31.148:30880 Account: admin Password: P@88w0rd NOTES: 1. After logging into the console, please check the monitoring status of service components in the "Cluster Status". If the service is not ready, please wait patiently. You can start to use when all components are ready. 2. Please modify the default password after login. #####################################################
确认 Pod 都正常运行
View Code
使用IP:30880访问 KubeSphere UI 界面,默认的集群管理员账号为:admin,密码:P@88w0rd
登录成功后,效果如下:
点击平台管理-->监控中心
本文参考链接:
https://www.cnblogs.com/cjsblog/p/12828639.html
https://www.kubernetes.org.cn/7315.html