这里我们使用helm 3.0+版本, 可以直接使用kube-server api, 不需要在集群安装tiler
安装
sudo snap install helm --classic
Chartmuseum
repo: https://github.com/helm/chartmuseum
本地安装
curl -LO https://s3.amazonaws.com/chartmuseum/release/latest/bin/linux/amd64/chartmuseum
chmod +x chartmuseum
sudo mv chartmuseum /usr/bin/
sudo mkdir /opt/chart && sudo chown $USER /opt/chart
./chartmuseum --storage=local --storage-local-rootdir=/opt/chart
然后打开http://localhost:8080就可以看到欢迎界面
创建和使用chart
我们以创建一个nginx chart为例。
使用helm创建初始化配。
mkdir app
helm create chart
然后可以看到初始化的以下配置
artificerpi@ky-laptop:~/build/app$ tree chart
chart
├── charts
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── ingress.yaml
│ ├── NOTES.txt
│ ├── serviceaccount.yaml
│ ├── service.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml
3 directories, 9 files
修改chart/Chart.yaml文件,将name字段改为nginx-foo
package
helm package .
install
helm install <NAME> foo-0.1.0.tgz
helm plugin install https://github.com/chartmuseum/helm-push.git
加入本地chartmuseum仓库
helm repo add chartmuseum http://localhost:8080
推送nginx-foo
chart
helm push chart/ chartmuseum
# 或者指定版本
helm push chart/ chartmuseum --version=0.1.1
成功后,通过curl命令调用chartmuseum api就可以看到上传结果
# curl http://localhost:8080/api/charts
{"nginx-foo":[{"name":"nginx-foo","version":"0.1.0","description":"A Helm chart for Kubernetes","apiVersion":"v2","appVersion":"1.16.0","type":"application","urls":["charts/nginx-foo-0.1.0.tgz"],"created":"2020-04-03T10:26:49.059906306+08:00","digest":"aa6532c71a1a463d34d295f4c9a36bafbcd116e4520c8661af9fd13773f0b7b8"}]}
示范
all in one helm chart
sonarqube
spring boot app with web frontend