构建私有Chart仓库
我们需要构建一个GitHub pages存储所有chart的压缩文件,最好还要有一个前端来展示和搜索chart。
什么是Chart
Chart是helm管理的应用的打包格式。它包括如下特征:
- Chart中包括一系列的yaml格式的描述文件。
- 一个Chart只用来部署单个的应用的,不应该过于复杂,不应该包含多个依赖,相当于一个微服务。
Chart有特定的目录结构,可以打包起来进行版本控制。
我们以nginx的chart为例,讲解chart的组成结构。
Chart的安装方式
安装chart主要分为安装本地定义的chart和远程chart仓库中的chart两种方式。
安装本地chart
- 指定本地chart目录:helm install .
- 指定本地chart压缩包:helm install nginx-1.2.3.tgz
- 使用默认的远程仓库:helm install stable/nginx
- 使用指定的仓库:helm install localhost:8879/nginx-1.2.3.tgz
实际上可以将chart打包后作为静态文件托管到web服务器上,例如GitHub pages作为chart仓库也可以。
有两种方式来管理chart的依赖。
- 直接在本的chart的目录下定义
- 通过在
requirements.yaml
文件中定义依赖的chart
在每个chart的目录下可以定义依赖的子chart。子chart有如下特点:
- 无法访问父chart中的配置
- 父chart可以覆盖子chart中的配置
Chart 仓库(repository)是一个用来托管index.yaml
文件和打包好的chart文件的web服务器。当前chart仓库本身没有设置身份和权限验证,查看此链接获取该问题的最新进展。
因为chart仓库只是一个HTTP服务,通过HTTP GET获取YAML文件和chart的压缩包,所以可以将这些文件存储在web服务器中,例如GCS、Amazon S3、GitHub Pages等。
关于chart仓库的更多信息请参考。
使用GitHub pages托管charts
克隆项目到本地
依赖环境
- angular/cli
- Typescript
- Sass
- Bootstrap
在目录下执行以下命令安装依赖:
运行
最简单的运行方式使用:
该命令需要用到如下镜像:
- bitnami/mongodb:3
- bitnami/node:8
- quay.io/deis/go-dev:v1.5.0
会有一个很长的build过程,构建失败。
使用helm
首先需要已在本地安装了helm,并在kubernetes集群中安装了tiller,见。
因为nginx ingress配置问题,官方的chart中api与ui使用的是同样的domain name,我使用的是traefik ingress,api
访问不到,所以加载不了chart。