安装KubeSphere

一、概述

官方中文文档:https://kubesphere.io/docs/zh-CN/introduction/what-is-kubesphere/

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版本dockerip主机名配置
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

 

安装helm

KubeSphere依赖于helm,关于helm安装,请参考链接:

https://www.cnblogs.com/xiao987334176/p/12752783.html

 

安装nfs

为了方便演示,这里我直接在主机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工作正常。

 

安装 StorageClass

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

确保状态正常

 

标记一个默认的 StorageClass

操作命令

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,表示成功了。

 

部署 KubeSphere

过程很简单,如果你的机器资源足够,集群可用 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

 

三、访问KubeSphere UI 

使用IP:30880访问 KubeSphere UI 界面,默认的集群管理员账号为:admin,密码:P@88w0rd

 

 

登录成功后,效果如下:

 

 

点击平台管理-->监控中心

 

 

 

 

本文参考链接:

https://www.cnblogs.com/cjsblog/p/12828639.html

https://www.kubernetes.org.cn/7315.html

 

posted @ 2021-10-09 22:26  China Soft  阅读(618)  评论(0编辑  收藏  举报