KubeSphere快速入门

简介

KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,完全开源,支持多云与多集群管理,提供全栈的 IT 自动化运维能力,简化企业的 DevOps 工作流。它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用 (plug-and-play) 的集成。

作为全栈的多租户容器平台,KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。KubeSphere 为用户提供构建企业级 Kubernetes 环境所需的多项功能,例如多云与多集群管理、Kubernetes 资源管理、DevOps、应用生命周期管理、微服务治理(服务网格)、日志查询与收集、服务与网络、多租户管理、监控告警、事件与审计查询、存储管理、访问权限控制、GPU 支持、网络策略、镜像仓库管理以及安全管理等。

架构


核心组件主要有三个:

  • ks-console 前端服务组件
  • ks-apiserver 后端服务组件
  • ks-controller-manager 资源状态维护组件

前后端分离:

KubeSphere 将 前端 与 后端 分开,实现了面向云原生的设计,后端的各个功能组件可通过 REST API 对接外部系统。 可参考 API文档。 KubeSphere 无底层的基础设施依赖,可以运行在任何 Kubernetes、私有云、公有云、VM 或物理环境(BM)之上。 此外,它可以部署在任何 Kubernetes 发行版上。

架构


核心组件主要有三个:

  • ks-console 前端服务组件
  • ks-apiserver 后端服务组件
  • ks-controller-manager 资源状态维护组件

前后端分离:

KubeSphere 将 前端 与 后端 分开,实现了面向云原生的设计,后端的各个功能组件可通过 REST API 对接外部系统。 可参考 API文档。 KubeSphere 无底层的基础设施依赖,可以运行在任何 Kubernetes、私有云、公有云、VM 或物理环境(BM)之上。 此外,它可以部署在任何 Kubernetes 发行版上。
组件列表:

后端组件 功能说明
ks-apiserver 整个集群管理的 API 接口和集群内部各个模块之间通信的枢纽,以及集群安全控制。
ks-console 提供 KubeSphere 的控制台服务。
ks-controller-manager 实现业务逻辑的,例如创建企业空间时,为其创建对应的权限;或创建服务策略时,生成对应的 Istio 配置等。
metrics-server Kubernetes 的监控组件,从每个节点的 Kubelet 采集指标信息。
Prometheus 提供集群,节点,工作负载,API对象的监视指标和服务。
Elasticsearch 提供集群的日志索引、查询、数据管理等服务,在安装时也可对接您已有的 ES 减少资源消耗。
Fluent Bit 提供日志接收与转发,可将采集到的⽇志信息发送到 ElasticSearch、Kafka。
Jenkins 提供 CI/CD 流水线服务。
Source-to-Image 将源代码自动将编译并打包成 Docker 镜像,方便快速构建镜像。
Istio 提供微服务治理与流量管控,如灰度发布、金丝雀发布、熔断、流量镜像等。
Jaeger 收集 Sidecar 数据,提供分布式 Tracing 服务。
OpenPitrix 提供应用程序生命周期管理,例如应用模板、应用部署与管理的服务等。
Alert 提供集群、Workload、Pod、容器级别的自定义告警服务。
Notification 是一项综合通知服务; 它当前支持邮件传递方法。
Redis 将 ks-console 与 ks-account 的数据存储在内存中的存储系统。
OpenLDAP 负责集中存储和管理用户帐户信息与对接外部的 LDAP。
Storage 内置 CSI 插件对接云平台存储服务,可选安装开源的 NFS/Ceph/Gluster 的客户端。
Network 可选安装 Calico/Flannel 等开源的网络插件,支持对接云平台 SDN。

服务组件:

以上列表中每个功能组件下还有多个服务组件,关于服务组件的说明,可参考 服务组件说明。

1. 创建企业空间、项目、用户和平台角色

KubeSphere 的多租户系统分三个层级,即集群、企业空间和项目。KubeSphere 中的项目等同于 Kubernetes 的命名空间。

您需要创建一个新的企业空间进行操作,而不是使用系统企业空间,系统企业空间中运行着系统资源,绝大部分仅供查看。出于安全考虑,强烈建议给不同的租户授予不同的权限在企业空间中进行协作。
步骤 1:创建用户
步骤 2:创建企业空间
步骤 3:创建项目
步骤 4:创建角色
步骤 5:创建 DevOps 项目(可选)

2. 登录

登录地址:https://new.ks.easyj.top/login

使用工号与密码登录。

第一次进入时,需要找对应的负责人添加企业和项目空间权限,得到授权后刷新页面或再次登录就会看到如下的页面。

3. 新建

3.1 新建项目空间

进入ks后,如下图左侧所示菜单

  • 进入"项目管理"
  • 点击"创建"

弹出下图中的窗口

按照要求填入名称,描述信息,然后点击创建,便完成了项目空间的创建。

项目空间名称:项目名称-环境名称。

点击项目名称即可进入到项目空间中。

3.2 创建网关

进入到项目空间中后,需要设置网关,使应用路由可以被外部访问。

顺序点击"项目设置"--->"高级设置",进入下图所示的页面,点击"设置网关"。

弹出窗口,点击"保存",即完成了网关的创建。

3.3 新建密钥

在项目空间中,点击左侧菜单栏的"配置中心"--->"密钥",进入如下页面,点击"创建"。

填写"名称"和"描述信息"后,点击下一步。

在类型中有四种类型供我们选择,

在我们的使用中,目前仅需创建"镜像仓库密钥"类型。

输入镜像仓库地址,也就是镜像仓库的域名,例:harbor.ks.easyj.top

镜像仓库中所需项目权限的工号和密码,验证账户密码是否正确,点击创建即可。

刷新一下,即可看到创建成功!

3.4 新建配置

在项目空间,点击左侧菜单栏的"配置中心"--->"配置",进入如下页面,点击"创建"。

点击"创建"后,会弹出如下窗口,根据要求填写"名称","描述信息",然后点击下一步。

配置名称为:对应应用的名称。

点击"添加数据"。

  • 填入"key",需要挂载的文件名称(带格式)例:appConfig.js。
  • 填入"value",需要挂载的文件的内容。
  • 点击"√",如果还有数据可以继续添加。

点击创建,刷新下页面即可看到。

3.5 新建应用

创建应用前需要先创建好镜像仓库密钥,如果需要挂载配置,配置也需要提前创建好。

在左侧菜单栏,点击"应用负载"--->"应用",进入如下页面,点击"自制应用"--->"构建自制应用"。

输入应用名称,描述信息,点击"下一步"。

点击"添加服务",选择无状态服务。

输入"名称","描述信息",然后点击"下一步"。

点击"添加容器镜像"。

选择需要添加的镜像仓库地址。

例:harbor.ks.easyj.top/easyj-base/config-center:latest

  • harbor.ks.easyj.top是域名;
  • easyj-base是镜像仓库中的项目名称;
  • config-center是镜像名称;
  • latest是镜像版本;

这里输入了一个别的镜像做演示。

有内存限制的要求可根据实际使用情况进行更改。

选择TCP,容器端口号,前端默认是80,后端默认是8080;服务端口号,前端默认是80,后端默认是8080。

选择"尝试重新下载镜像"。

如果应用需要配置环境变量,就勾选中环境变量,然后输入key和value ,配置完成后,点击"√"。

点击"下一步"。

如果有挂载需要,点击"挂载配置文件或密钥",如果没有需要,直接点击"下一步"。

选择需要挂载的类型(一般是配置挂载),选择我们事先创建好的配置或密钥。

选择"只读", 填入容器挂载路径,就是文件需要放在容器的哪个路径下面,就填入该路径,点击"√"。

点击"下一步",完成添加。

继续点击"下一步"--->"创建"。

3.6 创建应用路由

正常一个项目空间中,只需创建一个应用路由。

点击左侧菜单栏的"应用负载"--->"应用路由",进入如下页面,点击"创建"。

名称,项目名称-ingress,例:demo-ingress。

点击"下一步"。

点击"添加路由规则"。

选择"指定域名",填入域名,域名是:项目空间名称.zucc.easyj.top,例:demo.zucc.easyj.top。

填入访问程序的路径,选择访问路径对应的应用的服务(服务在创建应用时一同被创建出来),点击"√"。

点击"下一步",完成"创建",刷新一下页面即可看到了。

3.7 新建DevOps工程

点击"工作台"进入下图页面。

在左侧菜单栏找到"DevOps工程",点击创建。

输入"名称","描述信息",点击确定(Devops项目名称:项目名称)。

3.7.1 复制流水线模版

在DevOps工程中有一个名为"demo"的DevOps工程。

需要将"demo"DevOps工程中的前后端流水线模版复制到新建的DevOps工程中。

进入demo,会看到如下两个流水线,demo-front是前端模版,demo-jar是后端模版。

在我们新建的DevOps工程中,点击"创建"流水线。

输入"名称","描述信息",点击下一步。

点击"添加参数"--->"字符串参数(String)",有多个参数,那么多次点击,进行添加。

在demo中,进入demo-front流水线具体配置页面,点击"更多操作"--->"编辑配置"。

将"参数化构建"中的所有参数,粘贴复制到我们新建的DevOps工程的demo-front中。

创建后,我们新建的空间下就会出现名字为demo-front的流水线,进入demo-front流水线操作页面,点击"编辑Jenkinsfile"。

在demo中,进入demo-front流水线具体配置页面,点击"编辑Jenkinsfile",将里面的内容全部复制到我们新建的流水线中。

复制过来后点击"确定"。

至此,便将demo-front流水线从demo复制到我们新建的流水线中。demo-jar也进行同样的操作进行复制。


参数说明

参数名称 默认值 参数解释
BRANCH master 代码分支
TAG dev 镜像版本
PRODUCTION dev 所思前端用于区分环境的参数,可忽略
REGISTRY harbor.ks.easyj.top/easyj-base 镜像位置,镜像仓库域名/项目名称(新DevOps工程需要将项目名称改成新DevOps工程需要推送到的镜像仓库项目名称)

3.8 新建凭证

进入具体DevOps工程后,点击左侧菜单栏的"凭证",进入如下页面,点击"创建"。

  • 凭证的名称,代码仓库凭证名称:项目名称-gitee-工号
  • 类型,直接选择"账户凭证"
  • 代码仓库的账户
  • 代码仓库账户对应的密码

点击确认

3.9 新建流水线

点击流水线右侧的"┆"--->"复制流水线",前端复制demo-front,后端复制demo-jar。

  • 名称,流水线名称,输出最终镜像的流水线名称:deploy-应用名称。

其余依赖流水线名称:根据依赖工程命名。

  • 描述信息,选填。

完成后,点击"确定"。

此步骤之前,需要先将有此代码仓库的凭证创建好。

流水线复制完成后,进入流水线操作页面,点击"编辑流水线"。

点击"git",继续点击小扳手的图标。

在弹出窗口中

  • 将url修改成需要构建的代码的仓库地址
  • 选择有此仓库权限的凭证
  • 点击"确定"

按顺序点击小扳手的图标。

在弹出的窗口中

选择对应的镜像仓库凭证。

  • "密码变量"输入:HARBOR_PASSWORD。
  • "用户名变量"输入:HARBOR_USERNAME。

点击"确认","保存",至此就完成了流水线的新建。

4. 变更

4.1 更新密钥

进入项目空间后,点击左侧菜单栏的"配置中心"--->"密钥",进入如下页面,点击需要更新的密钥右侧的"┆",选择"编辑密钥"。

更改需要更新的内容,点击"更新"即可。

4.2 更新配置

进入项目空间后,点击左侧菜单栏的"配置中心"--->"配置",进入如下页面,点击需要更新的配置右侧的"┆",选择"修改配置"。

将鼠标放到弹出的窗口中,点击 / 图标。

进入如下页面,进行更新后,点击"√"。

点击"更新",这样便完成了配置的更新。

4.3 变更应用

应用的变更需要在"工作负载"中完成。

在左侧菜单栏,点击"应用负载"--->"工作负载",点击需要更改的工作负载,进入具体工作负载的配置页面。

4.3.1 更新应用

在具体工作负载的配置页面

点击"更多操作"--->"编辑配置模版"。

会弹出如下窗口,选择"容器组模版"。

鼠标悬浮在容器镜像上,点击 / 图标。

进入下图页面,在此页面对镜像版本,环境变量等参数进行更改,更改完成后点击"√"。

点击"保存"。

如需挂载配置,或更改,点击"存储卷",进行配置。

点击"确认",完成更新。

4.3.2 重启应用

在具体工作负载的配置页面

点击"更多操作"--->"重新部署",即完成应用重启。

4.3.3 应用伸缩

在具体工作负载的配置页面。

在"副本运行状态"。

扩容:点击"︿"

缩容:点击"﹀"

4.3.4 查看容器日志

在具体工作负载的配置页面

点击具体的容器,在弹出的小框里点击图标即可查看容器的日志。

4.3.5 进入容器内操作

在具体工作负载的配置页面

点击具体的容器,在弹出的小框里点击图标(只有在容器运行状态为正常时,才会出现),就可以进入容器内的终端了。

在终端,先输入"bash",然后回车,再进行其他操作。

4.4 更新路由

进入项目空间后,点击左侧菜单栏的"应用负载"--->"应用路由",进入如下页面,点击需要更新的配置右侧的"┆",选择"编辑规则"。

鼠标悬放在路由规则上,点击下图圈中的图标。

进入设置路由规则页面,

在此页面进行添加或更改路径,完成后点击"保存"。

点击"更新"就可以了。

相关推荐
ether-lin18 分钟前
DevOps实战:用Kubernetes和Argo打造自动化CI/CD流程(1)
ci/cd·kubernetes·devops
沛沛老爹24 分钟前
CI/CD是什么?
运维·git·ci/cd
IPdodo全球网络服务1 小时前
如何通过TikTok引流到私域流量池
运维·服务器·网络
IT 古月方源1 小时前
关于高级acl的配置和讲解
运维·开发语言·网络·tcp/ip·智能路由器
Tester_孙大壮2 小时前
运维相关知识科普
大数据·运维·数据库
Carry_NJ2 小时前
docker-compose样例
运维·docker·容器
勇-子2 小时前
K8s 常用资源介绍
云原生·容器·kubernetes
大G哥2 小时前
k8s创建单例redis设置密码
数据库·redis·云原生·容器·kubernetes
彩虹糖_haha2 小时前
Linux高并发服务器开发 第六天(rwx 对于目录和文件的区别 gcc编译器 动态库静态库)
linux·运维·服务器
勇-子4 小时前
K8s DaemonSet的介绍
云原生·容器·kubernetes