Kubesphere应用商店

目录

    • 1. 启用应用商店
    • 2. 应用模板开发的生命周期
    • 3. 自制应用模板(Helm Chart)
    • 4. 上传和提交应用模板
    • 5. 审核及发布应用模板
    • 6. 发布应用到应用商店
    • 7. 创建应用分类
    • 8. 部署应用
      • 8.1 部署方式1 - 从应用商店进行部署
      • 8.2 部署方式2 - 从项目中基于应用模版部署
      • 8.3 安装应用

1. 启用应用商店

KubeSphere 集成了 OpenPitrix(一个跨云管理应用程序的开源平台)来构建应用商店,管理应用程序的整个生命周期。这里提的应用即指Helm Chart(K8S资源的编排、打包、部署等)。

注:
关于Kubesphere及K8S的搭建可参见我之前的博客:
Kubesphere All-in-one模式安装

方式1:未安装KS前进行设置
在安装KS前,可通过编辑config-sample.yaml文件,设置如下:

openpitrix:
  store:
    enabled: true # 将“false”更改为“true”。

然后通过如下命令安装KS:

./kk create cluster -f config-sample.yaml

方式2:已安装过KS通过管理界面进行设置
若之前已安装过KS,则可通过KS管理界面左侧菜单CRD -> 搜索clusterconfiguration -> 然后编辑其下资源ks-installer,如下图:

Kubesphere应用商店_第1张图片
同样设置openpitrix.store.enabled为true:
Kubesphere应用商店_第2张图片

Kubesphere 应用商店详细开启说明可参见:
https://kubesphere.io/zh/docs/pluggable-components/app-store/

设置完成后可发现在KS管理界面上出现应用商店菜单,如下图:

也可以在不登录控制台的情况下直接访问 <节点 IP 地址>:30880/apps 进入应用商店。
如 http://192.168.3.120:30880/apps
且KubeSphere 3.2.x 中的应用商店启用后,OpenPitrix 页签不会显示在系统组件页面。

Kubesphere应用商店_第3张图片

2. 应用模板开发的生命周期

按照本文后续步骤操作完,可以再参见下图梳理下整个过程:
Kubesphere应用商店_第4张图片

3. 自制应用模板(Helm Chart)

注: 示例中web_app Chart具体脚本定义参见:
https://gitee.com/luoex/ks-devops-demo/tree/master/helm

使用helm3自作一个自定义的Chart,具体制作过程如下:

# 新建Chart模板,对应目录./web-app
helm create web-app

# 修改web-app相关资源定义
# 修改Chart.yaml
# 添加templates/**.yaml
# 修改values.yaml
# Chart详细内容参见:https://gitee.com/luoex/ks-devops-demo/tree/master/helm

# 进入web-app目录下,检查helm Chart相关脚本语法是否正确
# 若出现错误提示,则根据提示修改脚本
helm lint

# 打包Chart为tgz
# {chart.name}-{chart.version}.tgz
# 执行如下命令后生成web-app-0.1.0.tgz
helm package web-app

Chart目录文件说明如下:

chartname/
  Chart.yaml          # 包含 Chart 基本信息(例如版本和名称)的 YAML 文件。
  LICENSE             # (可选)包含 Chart 许可证的纯文本文件。
  README.md           # (可选)应用说明和使用指南。
  values.yaml         # 该 Chart 的默认配置值。
  values.schema.json  # (可选)向 values.yaml 文件添加结构的 JSON Schema。
  charts/             # 一个目录,包含该 Chart 所依赖的任意 Chart。
  crds/               # 定制资源定义。
  templates/          # 模板的目录,若提供相应值便可以生成有效的 Kubernetes 配置文件。
  templates/NOTES.txt # (可选)包含使用说明的纯文本文件。

4. 上传和提交应用模板

进入到具体工作空间 -> 应用管理 -> 应用模版-> 创建
Kubesphere应用商店_第5张图片
按照提示上传之前制作好的web-app-0.1.0.tgz
Kubesphere应用商店_第6张图片
Kubesphere应用商店_第7张图片

上传成功后如下图:
Kubesphere应用商店_第8张图片

进入具体应用模板详情页,虽然此时应用模版状态为开发中,但依旧可以通过点击安装将此应用部署到指定K8s集群中进行调试,调式过后确定没有问题了,就可以点击提交发布,待之后审核通过后,即可进行发布。

Kubesphere应用商店_第9张图片
点击提交发布后,即出现如下弹出确认页,可根据需要修改应用模板描述信息,最后点击确定即可提交。
Kubesphere应用商店_第10张图片
Kubesphere应用商店_第11张图片

5. 审核及发布应用模板

点击左上角的平台管理,在弹出页中选择应用商店管理
Kubesphere应用商店_第12张图片
进入如下应用发布页面,在待发布Tab页面即可查看到刚才新提交的web-app应用:
Kubesphere应用商店_第13张图片
点击该应用进行审核,在弹出窗口中查看应用信息、介绍、配置文件和更新日志,最后可点击通过来批准,或者点击拒绝来拒绝提交的应用。

Kubesphere应用商店_第14张图片
Kubesphere应用商店_第15张图片

6. 发布应用到应用商店

对于之前那已经审核通过并且同意提交后的应用模板,即可在回到工作空间 -> 应用管理 -> 应用模版界面,将应用模板最终发布到应用商店,之后所有企业空间中的用户均可以从应用商店中使用此应用模板部署应用,而未发布到应用商店的应用模板仅供创建此应用模板的空间独自使用。

注:
发布到应用商店的应用模板可被公开使用,即所有的工作空间均可使用应用商店中的应用模板部署应用,
未发布到应用商店的应用模板仅可被创建此应用模板的工作空间独自使用,其他工作空间看不到。

Kubesphere应用商店_第16张图片
点击发布到商店后,应用模板状态变为已上架,之后即可在应用商店中查看到此应用模板:
Kubesphere应用商店_第17张图片

7. 创建应用分类

进入应用商店中即可查看到新上架的应用,新应用默认在未分类下:
Kubesphere应用商店_第18张图片
回到之前的平台管理 -> 应用商店管理 -> 应用分类页面,在此可以创建新的分类:
Kubesphere应用商店_第19张图片
如上新建分类luo-app后,即可将之前新发布的web-app应用调整到此luo-app分类下:
Kubesphere应用商店_第20张图片
Kubesphere应用商店_第21张图片
如下新发布的应用web-app已被调整到luo-app分类下:
Kubesphere应用商店_第22张图片
Kubesphere应用商店_第23张图片

8. 部署应用

8.1 部署方式1 - 从应用商店进行部署

可直接从应用商店中选择对应的应用模板(已上架的应用模板),然后点击进入安装:
Kubesphere应用商店_第24张图片
Kubesphere应用商店_第25张图片

8.2 部署方式2 - 从项目中基于应用模版部署

进入具体工作空间 -> 项目 -> 应用负载 -> 应用 -> 基于模版的应用 -> 创建进行部署:

注:
平台管理 -> 集群管理 -> 应用负载进入无法看到应用菜单。

Kubesphere应用商店_第26张图片
点击创建后,以可以分别从应用商店中的应用模板企业空间内自定义的应用模板中进行选择:
Kubesphere应用商店_第27张图片

8.3 安装应用

接下来以从应用模板中选择安装为例(其他选择方式到最后的安装方式都是一样的故不再举例):
Kubesphere应用商店_第28张图片
进入后点击安装按钮后即进入如下安装页面:
Kubesphere应用商店_第29张图片
点击下一步配置应用设置(即可覆盖应之前Helm Chart中values.yaml中的默认值)
Kubesphere应用商店_第30张图片

应用安装成功后如下图:Kubesphere应用商店_第31张图片
之后亦可进入应用的相应资源页面查看对应的资源(如工作负载、服务、容器组):
Kubesphere应用商店_第32张图片
通过http://192.168.3.120:31900/hello测试服务是否可正常访问:
Kubesphere应用商店_第33张图片


参考:
https://kubesphere.io/zh/docs/pluggable-components/app-store/
https://kubesphere.io/zh/docs/application-store/app-lifecycle-management/
https://kubesphere.io/zh/docs/application-store/app-developer-guide/helm-developer-guide/
https://kubesphere.io/zh/docs/application-store/app-developer-guide/helm-specification/
https://helm.sh/docs/

你可能感兴趣的:(k8s,kubesphere,helm,应用商店)