Advanced v2.0

Advanced v2.0
Advanced v1.0
Express v1.0
  1. Release Notes
  1. 产品介绍
  1. 安装指南
  1. 快速入门
  1. 管理员指南
    1. 多租户管理
    1. 平台管理
    1. 基础设施
    1. 监控中心
    1. 平台设置
    1. 工具箱
    1. 通用配置
    1. FAQ
  1. 用户指南
    1. 应用
    1. 工作负载
    1. 存储
    1. 网络与服务
    1. 监控告警
    1. 配置中心
    1. 项目设置
    1. DevOps 工程
  1. API 文档
  1. 常见问题
  1. 附录
KubeSphere®️ 2019 All Rights Reserved.

基于 GitHub 搭建自有应用仓库

GitHub 是流行的代码仓库,可以直接托管静态文件,利用这个特性可以搭建应用仓库。

基于 GitHub 搭建自有应用仓库

根据 Helm 官方指南 编写应用,同时可浏览 Kubesphere 应用仓库已有的应用作为参考:官方应用位于 src/qingcloud 目录下,测试应用位于 src/experimental 目录下。

前提条件

创建一个 GitHub 仓库,比如创建一个示例仓库 https://github.com/FeynmanZhou/helm-repo-example,所有的应用包都可以存放在此处。

第一步:开发应用

1、参考 官方文档 安装 Helm 客户端。

2、打开命令行工具,初始化 Helm 客户端:

helm init --client-only

3、根据 Helm 官方文档 创建应用。下面我们创建一个名为 mychart 的示例应用。

在命令行窗口初始化一个应用:

cd helm-repo-example
helm create mychart

此时会看到 Helm 工具帮我们生成了一个基于 Nginx 的应用(以模板文件组织):

│ helm-repo-example/
│ └── mychart/
│     ├── Chart.yaml
│     ├── values.yaml
│     ├── templates/
│         ├── Notes.txt       # 用户执行 helm install 安装应用时显示的文字
│         ├── deployment.yaml # 对应 k8s deployment(部署)的模板文件
│         └── service.yaml    # 对应 k8s service(服务)的模板文件
│     └── ...

4、然后根据实际需要进行修改和开发。

第二步:打包应用

1、开发完成后,在目录 helm-repo-example 下把应用打包(准备上传):

helm package mychart

2、打包完成后的目录结构如下:

│ helm-repo-example/
│ └── mychart-0.1.0.tgz       # 可部署的应用包
│ ├── mychart/
│     ├── Chart.yaml
│     ├── templates/
│         └── service.yaml    # 对应 k8s service(服务)的模板文件
│     └── ...

第三步:打包应用

1、在目录 helm-repo-example 下利用 helm 命令生成索引文件 index.yaml:

helm repo index .

2、最后的目录结构如下:

│ helm-repo-example/
│ ├── index.yaml              # 可部署的应用包
│ ├── mychart-0.1.0.tgz       # 可部署的应用包
│ ├── mychart/
│     ├── Chart.yaml
│     ├── templates/
│         └── service.yaml    # 对应 k8s service(服务)的模板文件
│     └── ...

第四步:上传应用

把上面产生的所有文件都提交到 GitHub 仓库里,此处默认上传到 master 分支。

第五步:添加应用仓库

如果是第一次部署,把 GitHub 示例仓库 https 地址添加到 KubeSphere 就可以使用了。

以下简单说明如何将该 GitHub 仓库作为应用仓库添加至 KubeSphere,详见 添加应用仓库

1、在 「平台管理」→ 「平台设置」 的应用仓库下,点击添加应用仓库,输入示例仓库 https://raw.githubusercontent.com/FeynmanZhou/helm-repo-example/master 点击验证通过后再点击确定。

2、点击 「应用模板」,即可看到该仓库中的应用已成功导入至 KubeSphere,点击进入应用即可一键部署至指定项目中。

3、以下已成功将 mychart 应用部署至项目中,关于如何部署应用可参考 一键部署应用

自动化上传

上述第二〜四步可以自动化,解放手工操作并减少人工错误。可以利用现有的 CICD 工具(如 Jenkins)或开源平台(如 Travis CI)实现。大体流程如下:

# 下载代码
git clone https://github.com/FeynmanZhou/helm-repo-example

# 拉取分支
git fetch
git checkout app/mychart

# 初始化
helm init --client-only

# 打包
helm package mychart

# 更新索引
helm repo index .

# 提交
git commit -a -m "[CI Build] Upload App"
git push origin HEAD:app/mychart

# Merge PR(人工或自动)
基于 GitHub 搭建自有应用仓库
基于 GitHub 搭建自有应用仓库
前提条件
第一步:开发应用
第二步:打包应用
第三步:打包应用
第四步:上传应用
第五步:添加应用仓库
自动化上传