一. helm3安装

在这里插入图片描述

tar -zxvf  helm-v3.7.0-linux-amd64.tar.gz
mv  linux-amd64/helm  /usr/local/bin/helm
helm version

在这里插入图片描述

二. helm-push插件安装

1. 下载安装包:helm-push_0.10.1_linux_amd64.tar.gz

2. 查看helm的plugin路径:

在这里插入图片描述
helm插件的路径如上图所示

3. 在该路径下创建helm-push文件夹,并将安装包拷贝到该文件夹下解压即可。

mkdir /root/.local/share/helm/plugins/helm-push

cp helm-push_0.10.1_linux_amd64.tar.gz /root/.local/share/helm/plugins/helm-push

cd /root/.local/share/helm/plugins/helm-push
tar -xf helm-push_0.10.1_linux_amd64.tar.gz 

helm plugin list

在这里插入图片描述
插件安装好后,使用方式从:helm push 变为 helm cm-push

三. helm的使用

1. helm创建chart包

# 创建chart包
[root@web-test-01]# helm create demo
[root@web-test-01 demo]# tree
.
├── charts         #这个 charts 依赖的其他 charts,始终被安装
├── Chart.yaml     #描述这个 Chart 的相关信息、包括名字、描述信息、版本
├── templates
│   ├── deployment.yaml
│   ├── _helpers.tpl           #模版助手
│   ├── ingress.yaml
│   ├── NOTES.txt
│   ├── serviceaccount.yaml
│   ├── service.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml      #模板变量文件,,,,修改这个文件里的镜像读取方式,如果断网情况下,请改 pullPolicy:Never

# 检查语法:在当前demo根目录下执行
helm lint

2. 通过helm部署chart包

helm3.7.0默认创建的chart包是需要nginx镜像的,需要提前导入:docker images 能看见

[root@web-test-01 demo]#helm install -f values.yaml mydemo .
NAME: mydemo
LAST DEPLOYED: Sun Apr  5 17:16:56 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:
  export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=demo,app.kubernetes.io/instance=mydemo" -o jsonpath="{.items[0].metadata.name}")
  echo "Visit http://127.0.0.1:8080 to use your application"
  kubectl --namespace default port-forward $POD_NAME 8080:80
helm list

在这里插入图片描述

kubectl get pod -A

在这里插入图片描述

# 打包chart包成tgz格式
helm package demo   //会生成demo-0.1.0.tgz

命令不清楚的话,可以执行 helm package -h,,其他命令的参数不知道的话,也可以直接带个 -h 查询

3. helm基于harbor推送/拉取chart包(https版)

www.harbor.mobi:代表机器的域名,如果没有,可直接替换成IP

# 增加仓库,因为使用的自签名证书,所以命令上需要加上,若不加上则会报错:Error: Looks like "https://www.harbor.mobi/chartrepo/myrepo" is not a valid chart repository or cannot be reached: Get https://www.harbor.mobi/chartrepo/myrepo/index.yaml: x509: certificate signed by unknown authority
helm repo add --ca-file /usr/local/harbor/cert/ca.crt --cert-file /usr/local/harbor/cert/www.harbor.mobi.cert --key-file /usr/local/harbor/cert/www.harbor.mobi.key myrepo https://www.harbor.mobi/chartrepo/myrepo

# 查看仓库
helm repo list

# 更新仓库
helm repo update

# 推送tgz文件,demo-0.1.0.tgz是chart应用文件
helm cm-push --ca-file /usr/local/harbor/cert/ca.crt --cert-file /usr/local/harbor/cert/www.harbor.mobi.cert --key-file /usr/local/harbor/cert/www.harbor.mobi.key --username=admin --password=Harbor12345 demo-0.1.0.tgz myrepo

如果不加证书文件会报如下错:
报错:x509: certificate signed by unknown authority

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐