1. KubeSphere 是什么

1.1. 官方解释

KubeSphere是一个分布式操作系统,提供以Kubernetes为核心的云原生堆栈,旨在成为第三方应用程序的即插即用架构,以促进其生态系统的发展。 KubeSphere还是一个多租户企业级容器平台,具有全栈自动IT操作和简化的DevOps工作流程。它提供了开发人员友好的向导Web UI,可帮助企业构建更健壮且功能丰富的平台,其中包括企业Kubernetes战略所需的最常用功能,例如Kubernetes资源管理,DevOps(CI / CD),应用程序生命周期管理、监控、日志记录、服务网格、多租户、报警和通知,存储和网络、自动定量、访问控制、GPU的支持等,以及多集群管理、网络策略、注册表管理,更多即将发布的安全增强特性。

KubeSphere提供了整合的视图,同时围绕Kubernetes集成了广泛的生态系统工具,并提供一致的用户体验以降低复杂性,并开发了上游Kubernetes中尚不可用的新功能,以减轻Kubernetes的痛苦之处,包括存储,网络 ,安全性和易用性。 KubeSphere不仅允许开发人员和DevOps团队在统一控制台中使用他们喜欢的工具,而且最重要的是,由于这些功能是可插拔和可选的,因此它们与平台松散地结合在一起。

Kubernetes平台,专为DevOps团队量身定制

KubeSphere,以应用为中心的容器平台

极简、易用、灵活、高效

关于KubeSphere,最好最全面最通俗易懂的一篇文章是《一文说清 KubeSphere 容器平台的价值

https://kubesphere.io/zh-CN/blog/kubesphere-values/

1.2. 个人理解

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也是一样,开箱即用。

2. 安装

就一条命令,挺简单的,但是我装了两天两夜。期间,虚拟机装了好几遍,KubeSphere也重装了很多遍,一遍就是几个小时……

话不多说,官方文档(中/英文版)都写的非常清楚,开始安装

由于资源限制,我只能在虚拟机里装,这里选择All-in-One模式

首先,一定一定要看清楚系统要求,之前用CentOS没装成功,试了很多版本,最后老老实实用Ubuntu18.04

https://ubuntu.com/download/alternative-downloads

下载安装包

curl -L https://kubesphere.io/download/stable/v2.1.1 > installer.tar.gz \
&& tar -zxf installer.tar.gz && cd kubesphere-all-v2.1.1/scripts

在安装前一定一定要记得配置镜像加速器

例如阿里云容器镜像加速器服务 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

docker_registry_mirrors:
- https://docker.mirrors.ustc.edu.cn
- https://registry.docker-cn.com
- https://mirror.aliyuncs.com

~/kubesphere-all-v2.1.1/conf/common.yaml

执行./install.sh就等着吧(如果要重新安装建议先执行./uninstall.sh)

安装了两天,终于看到期待已久的画面了:

各种验证

https://kubesphere.io/docs/installation/verify-components/

https://kubesphere.io/docs/zh-CN/installation/verify-components/

安装完以后,一看资源占用情况,吓一跳,果然只适合企业用户

3. 遇到的问题

https://kubesphere.io/docs/troubleshooting/installation/

1、container in pod is not available

Error from server (BadRequest): container "installer" in pod "ks-installer-7d9fb945c7-6tnl9" is not available  

检查安装日志 ~/kubesphere-all-v2.1.1/logs

有一个非常好用的命令是  journalctl -xefu kubelet

2、如何重启

3、如何重启Kubernetes集群

我一直有个疑问,如果物理机或者Kubernetes的宿主机宕机或重启以后Kubernetes集群会自动重启吗?如果挂的是master所在的机器,很显然是不会的, 但如果是非master的节点的话不知道没试过。所以,Kubernetes集群的高可用就非常重要了。

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/

https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/

ReplicationController确保在任何时候都运行指定数量的pod副本。换句话说,ReplicationController确保一个pod或一组同类的pod总是处于可用状态。

我忽略了Kubernetes有很强的自愈能力

自愈(自我修复):重新启动失败的容器,在节点死亡时替换和重新调度容器,杀死那些不响应用户定义的健康检查的容器,并且在它们准备好提供服务之前不会向客户端通知它们。

在后面安装KubeSphere可插拔的功能组件时,更改common.yaml配置文件后,不需要做什么操作,过一会儿会自动更新容器以应用这些改变。

备忘录

kubectl get pods --all-namespaces
kubectl get pod -n <namespace>
kubectl logs <pod_name> -n <namespace> kubectl delete pod <pod_name> -n <namespace> # 查询systemd日志
journalctl -xefu kubelet kubectl get services
kubectl get deployments kubectl cluster-info

4. 文档

https://kubesphere.io/docs/installation/intro/

https://kubesphere.io/docs/zh-CN

https://kubesphere.io/docs/zh-CN/installation/intro/

https://kubesphere.io/zh-CN/blogs/

https://kubesphere.io/zh-CN/blog/kubesphere-values/

https://kubesphere.io/docs/zh-CN/introduction/what-is-kubesphere/

https://www.kubernetes.org.cn/author/kubesphere

安装KubeSphere的更多相关文章

  1. 安装 KubeSphere DevOps 系统

    1.  安装KubeSphere 安装了一夜,终于看到了期待已久的画面 第一步.硬件配置(PS:VirtualBox虚拟机): 操作系统:Ubuntu 18.04 CPU:4核 内存:8G 磁盘:60 ...

  2. K8S安装Kubesphere

    准备工作 安装Helm curl -L https://git.io/get_helm.sh | bash 创建账户 cat > heml-rbac.yaml << EOF apiV ...

  3. 【葵花宝典】All-in-One模式安装KubeSphere

    1.准备 Linux 机器 2.google api受限下载 KubeKey export KKZONE=cn curl -sfL https://get-kk.kubesphere.io | VER ...

  4. 使用kubekey安装kubesphere

    下载 KubeKey KubeKey 是新一代 Kubernetes 和 KubeSphere 安装器,可帮助您以简单.快速.灵活的方式安装 Kubernetes 和 KubeSphere. expo ...

  5. [转帖]Kubesphere all-in-one 安装方式.

    All-in-One 模式 对于首次接触 KubeSphere 高级版的用户,想寻找一个最快安装和体验 KubeSphere 高级版核心功能的方式,all-in-one 模式支持一键安装 KubeSp ...

  6. Kubernetes Dashboard 终结者:KubeSphere

    原文链接:Kubernetes Dashboard 终结者:KubeSphere 2018 年 7 月份,青云在 Cloud Insight 云计算峰会上推出了一款全新的容器平台--KubeSpher ...

  7. 手把手带你一键部署 Kubernetes + KubeSphere 至 Linux

    本文介绍一个最快安装 Kubernetes 和体验 KubeSphere 核心功能的方式,all-in-one 模式可一键安装 Kubernetes v1.15.5 和 KubeSphere 至一台 ...

  8. 在 Kubernetes 集群快速部署 KubeSphere 容器平台

    KubeSphere 不仅支持部署在 Linux 之上,还支持在已有 Kubernetes 集群之上部署 KubeSphere,自动纳管 Kubernetes 集群的已有资源与容器. 前提条件 Kub ...

  9. 在 Linux 部署多节点 Kubernetes 集群与 KubeSphere 容器平台

    KubeSphere 是在 Kubernetes 之上构建的以应用为中心的企业级容器平台,所有供为用户提供简单易用的操作界面以及向导式操作方式.同时,KubeSphere Installer 提供了 ...

随机推荐

  1. redis 非关系型数据库

    redis 类型,数据存在磁盘里面,所以存储速度比较快,其他数据类型还是存储在数据库所以比较慢些 链接redis数据库: r=redis.Redis(host="%%%%%%%", ...

  2. Prometheus 监控MySQL

    目录 0.简介 1.mysql_exporter部署 2.mysql报警规则 0.简介 文中主要监控MySQL/MySQL主从信息 版本:mysql-5.7,mysql_exporter-0.12.1 ...

  3. mysql几个操作数据库命令符下的常用命令

    1.导出整个数据库 mysqldump -u用户名 -p密码 数据库名 > 导出的文件名 C:\Users\jack> mysqldump -uroot -pmysql sva_rec & ...

  4. Jackson优化使用实例

    Jackson优化使用实例 博客分类: Java综合   JSON的三种处理方式  Jackson提供了三种可选的JSON处理方法(一种方式及其两个变型): 流式 API:(也称为"增量分析 ...

  5. spring中BeanPostProcessor之三:InitDestroyAnnotationBeanPostProcessor(01)

    在<spring中BeanPostProcessor之二:CommonAnnotationBeanPostProcessor(01)>一文中,分析到在调用CommonAnnotationB ...

  6. 第三章:shell变量知识进阶

    特殊变量:位置变量大于9的时候,需要加上(),例如$(10)$*获取脚本的所有参数,如果不加""和$@是一样的效果,如果加上"",则表示所有参数组成一个字符串$ ...

  7. stand up meeting 12/23/2015

    part 组员                工作              工作耗时/h 明日计划 工作耗时/h    UI 冯晓云  基本完成单词本显示页面的设计和实现    4 完善页面切换   ...

  8. stand up meeting 12/18/2015 ~12/20/2015(weekend)

    part 组员                工作              工作耗时/h 明日计划 工作耗时/h    UI 冯晓云    完成主页面设计和非功能性PDF reader UI设计实现 ...

  9. A - Engines Atcoder 4900

    题目大意:n个点,任意几个点组合后得到的点距离原点的最远距离. 题解:极角排序:https://blog.csdn.net/qq_39942341/article/details/79840394 利 ...

  10. js多线程的实现

    我们都知道JS是一种单线程语言,即使是一些异步的事件也是在JS的主线程上运行的(具体是怎么运行的,可以看我另一篇博客JS代码运行机制).像setTimeout.ajax的异步请求,或者是dom元素的一 ...