前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安装KubeSphere

安装KubeSphere

作者头像
py3study
发布2020-08-11 15:33:00
1.8K2
发布2020-08-11 15:33:00
举报
文章被收录于专栏:python3python3

一、概述

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

KubeSphere 是什么

KubeSphere 是在 Kubernetes 之上构建的以应用为中心的企业级分布式容器平台,提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大减轻开发、测试、运维的日常工作的复杂度,旨在解决 Kubernetes 本身存在的存储、网络、安全和易用性等痛点。除此之外,平台已经整合并优化了多个适用于容器场景的功能模块,以完整的解决方案帮助企业轻松应对敏捷开发与自动化运维、DevOps、微服务治理、灰度发布、多租户管理、工作负载和集群管理、监控告警、日志查询与收集、服务与网络、应用商店、镜像构建与镜像仓库管理和存储管理等多种业务场景。后续版本还将提供和支持多集群管理、大数据、人工智能等更为复杂的业务场景。

KubeSphere 从项目初始阶段就采用开源的方式来进行项目的良性发展,相关的项目源代码和文档都在 GitHub 可见。KubeSphere 支持部署和运行在包括公有云、私有云、VM、BM 和 Kubernetes 等任何基础设施之上,并且支持在线安装与离线安装,目前已在 阿里云、腾讯云、华为云、青云、AWS、Kubernetes 上进行过部署测试

功能架构

1.png
1.png

关于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。否则会出现错误:

代码语言:javascript
复制
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上面安装。

创建共享目录

代码语言:javascript
复制
mkdir -p /data/kubernetes

安装组件

代码语言:javascript
复制
yum -y install nfs-utils rpcbind

编辑配置文件

代码语言:javascript
复制
vi /etc/exports

内容如下:

代码语言:javascript
复制
/data/kubernetes 192.168.31.0/24(rw,sync,no_root_squash)

注意:这里的192.168.31.0/24,表示客户端访问白名单。只有符合的ip,才能访问。

启动nfs服务

代码语言:javascript
复制
service nfs start
service rpcbind start

设置开机自启动

代码语言:javascript
复制
systemctl enable nfs
systemctl enable rpcbind

登录主机k8s-master,安装客户端组件

代码语言:javascript
复制
yum -y install nfs-utils rpcbind

测试nfs

代码语言:javascript
复制
# 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,创建目录

代码语言:javascript
复制
mkdir nfsvolume

下载yaml文件

代码语言:javascript
复制
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 和目录

代码语言:javascript
复制
...
          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

部署创建

具体的说明可以去官网查看

代码语言:javascript
复制
kubectl create -f rbac.yaml
kubectl create -f class.yaml
kubectl create -f deployment.yaml

注意:请确保每一个k8s node节点,安装了nfs-utils

代码语言:javascript
复制
yum -y install nfs-utils

查看storageclass

代码语言:javascript
复制
# kubectl get storageclass
NAME                            PROVISIONER      AGE
managed-nfs-storage    fuseim.pri/ifs   139m

查看nfs pod

代码语言:javascript
复制
# kubectl get pods
NAME                                      READY   STATUS    RESTARTS   AGE
nfs-client-provisioner-59777fb457-dkf87   1/1     Running   0          153m

确保状态正常

标记一个默认的 StorageClass

操作命令

代码语言:javascript
复制
kubectl patch storageclass managed-nfs-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

请注意,最多只能有一个 StorageClass 能够被标记为默认。

验证标记是否成功

代码语言:javascript
复制
# 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内存的笔记本运行,只能最小化安装。完整版真心带不动!!!

创建目录

代码语言:javascript
复制
mkdir kubesphere

下载yaml文件

代码语言:javascript
复制
https://raw.githubusercontent.com/kubesphere/ks-installer/master/kubesphere-minimal.yaml

注意:以上链接,无法直接用wget下载。只能手动打开网页,复制粘贴到本地。

部署 KubeSphere

代码语言:javascript
复制
kubectl apply -f kubesphere-minimal.yaml

这个过程根据你实际网速,实际使用时间长度有所不同。

等待1分钟,你可以通过如下命令查看实时的日志输出。

代码语言:javascript
复制
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f

当你看到如下日志输出,证明你的 KubeSphere 部署成功

代码语言:javascript
复制
#####################################################
###              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 都正常运行

代码语言:javascript
复制
[root@k8s-master kubesphere]# kubectl get pods -A
NAMESPACE                      NAME                                       READY   STATUS    RESTARTS   AGE
default                        nfs-client-provisioner-59777fb457-dkf87    1/1     Running   0          156m
kube-system                    calico-kube-controllers-7489ff5b7c-4vs7c   1/1     Running   0          154m
kube-system                    calico-node-5qzhg                          1/1     Running   0          154m
kube-system                    calico-node-wrpq4                          1/1     Running   0          154m
kube-system                    coredns-58cc8c89f4-jhkzr                   1/1     Running   0          159m
kube-system                    coredns-58cc8c89f4-wmdqk                   1/1     Running   0          159m
kube-system                    etcd-k8s-master                            1/1     Running   0          158m
kube-system                    kube-apiserver-k8s-master                  1/1     Running   0          158m
kube-system                    kube-controller-manager-k8s-master         1/1     Running   0          159m
kube-system                    kube-proxy-8rmvg                           1/1     Running   0          159m
kube-system                    kube-proxy-r9pnm                           1/1     Running   0          159m
kube-system                    kube-scheduler-k8s-master                  1/1     Running   0          159m
kube-system                    tiller-deploy-6588db4955-wsxdt             1/1     Running   0          140m
kubesphere-controls-system     default-http-backend-5d464dd566-vd8pr      1/1     Running   0          137m
kubesphere-controls-system     kubectl-admin-6c664db975-95dbr             1/1     Running   0          137m
kubesphere-monitoring-system   kube-state-metrics-566cdbcb48-69gqx        4/4     Running   0          136m
kubesphere-monitoring-system   node-exporter-ntdbs                        2/2     Running   0          136m
kubesphere-monitoring-system   node-exporter-sz5rb                        2/2     Running   0          136m
kubesphere-monitoring-system   prometheus-k8s-0                           3/3     Running   1          135m
kubesphere-monitoring-system   prometheus-k8s-system-0                    3/3     Running   1          135m
kubesphere-monitoring-system   prometheus-operator-6b97679cfd-rfj48       1/1     Running   0          136m
kubesphere-system              ks-account-596657f8c6-f6nfn                1/1     Running   0          137m
kubesphere-system              ks-apigateway-78bcdc8ffc-95g9n             1/1     Running   0          137m
kubesphere-system              ks-apiserver-5b548d7c5c-gkh5g              1/1     Running   0          137m
kubesphere-system              ks-console-78bcf96dbf-kvfq5                1/1     Running   0          137m
kubesphere-system              ks-controller-manager-696986f8d9-59fhp     1/1     Running   0          137m
kubesphere-system              ks-installer-75b8d89dff-l855b              1/1     Running   0          139m
kubesphere-system              openldap-0                                 1/1     Running   0          137m
kubesphere-system              redis-6fd6c6d6f9-d5tn9                     1/1     Running   0          138m

三、访问KubeSphere UI 

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

1.png
1.png

登录成功后,效果如下:

1.png
1.png

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

1.png
1.png

本文参考链接:

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概述
    • KubeSphere 是什么
      • 功能架构
        • 个人理解
        • 二、最小化安装
          • 配置要求
            • 环境说明
              • 安装要求
                • 安装helm
                  • 安装nfs
                    • 安装 StorageClass
                      • 部署创建
                      • 标记一个默认的 StorageClass
                    • 部署 KubeSphere
                    • 三、访问KubeSphere UI 
                    相关产品与服务
                    容器服务
                    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档