1. chart
创建chart
helm create alpine目录结构如下所示,我们主要关注目录中的这三个文件即可:Chart.yaml、values.yaml和NOTES.txt。
alpine
├── charts
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── NOTES.txt
│ └── service.yaml
└── values.yaml打开Chart.yaml,填写应用的详细信息打开并根据需要编辑 values.yamlchart校验/打包对Chart进行校验
$ helm lint alpine
==> Linting alpine
[INFO] Chart.yaml: icon is recommended
1 chart(s) linted, no failures可以添加一个图标,在Chart.yaml最后一行里添加:
$ vi alpine/Chart.yaml
icon: https://cdn.kelu.org/kelu.jpg对Chart进行打包:
$ helm package alpine --debug
Successfully packaged chart and saved it to: /var/local/k8s/helm/alpine-0.1.0.tgz
[debug] Successfully saved /var/local/k8s/helm/alpine-0.1.0.tgz to /root/.helm/repository/localchart中定义依赖在chart目录中创建一个requirements.yaml文件定义该chart的依赖。
$ cat > ./alpine/requirements.yaml
dependencies:
- name: mariadb
version: 0.6.0
repository: https://kubernetes-charts.storage.googleapis.com
EOF通过helm命令更新和下载cahrt的依赖
$ helm dep update ./alpine
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "local" chart repository
...Successfully got an update from the "monocular" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈Happy Helming!⎈
Saving 1 charts
Downloading mariadb from repo https://kubernetes-charts.storage.googleapis.com
Deleting outdated charts在次安装运行chart时会把依赖中定义的chart运行起来。部署本地repo使用Helm serve命令启动一个repo server,该server缺省使用’$HELM_HOME/repository/local’目录作为Chart存储,并在8879端口上提供服务。
helm serve --address 0.0.0.0:8879 &启动本地repo server后,将其加入Helm的repo列表。
helm repo add local http://127.0.0.1:8879
"local" has been added to your repositories也可以把每个chart打包的文件集中存放到charts目录,使用以下命令生成index.yaml文件。
mkdir -p charts
mv alpine-0.1.0.tgz charts/
$ helm serve --repo-path ./charts --address 0.0.0.0:8879 &测试可以看到index.yaml的内容为:
我们可以自定义repo地址:
helm serve --address 0.0.0.0:8879 --url http://eur2.kelu.org:8879 &
helm serve --repo-path ./charts --address 0.0.0.0:8879 --url http://eur2.kelu.org:8879 &可以发现index.yaml 的 url 地址变了重建 chart 链接
helm repo index charts --url http://192.168.122.1:81/charts或者,在index.yaml中之增加新cahrt的元数据信息。
helm repo index charts --url http://192.168.122.1:81/charts --merge
2. repo
添加 repo通过以下命令增加repo
helm repo add charts http://192.168.122.1:81/charts
[root@k8s-master ~]# helm repo list
NAME URL
local http://127.0.0.1:8879/charts
stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
monocular https://kubernetes-helm.github.io/monocular
charts http://192.168.122.1:81/charts更新repo如果repo有更新,执行repo update命令会更新所以已增加的repo
helm repo update使用mongo删除在monocular的repomonocular的repo是存在数据库中的,与命令行的helm完全独立。当你在monocular中添加一个拥有很多内容的源的时候,api容器组会不断缓存,只有缓存完成后才会提供服务,此时你心急如焚想删掉这个该死的源,可以直接在mongo数据库里删除:
「滋磁一下」
领取专属 10元无门槛券
私享最新 技术干货