目录
Helm
针对Kubernetes的Helm包管理器。
简介
Kubernetes包管理器
Helm的一般操作:
- helm search: 搜索chart
- helm pull: 下载chart到本地目录查看
- helm install: 上传chart到Kubernetes
- helm list: 列出已发布的chart
详情及下载参照官网: https://helm.sh/zh/docs/intro/
helm 安装
tar zxf helm-v3.4.1-linux-amd64.tar.gz
cd linux-amd64/
mv helm /usr/local/bin/
命令补齐
echo "source <(helm completion bash)" >> ~/.bashrc
source ~/.bashrc
helm 添加第三方chart 库:
helm repo add mychart http://reg.westos.org/chartrepo/charts
注:
添加有验证的私有仓库时,上传时需要解决证书问题:
cp ca.crt /etc/pki/ca-trust/source/anchors/
update-ca-trust
示例截图:
示例
自建chart
# 创建 mychart 的 helm 项目
helm create mychart
# tree 查看目录结构
tree .
ls
cd mychart/
ls
# Chart.yaml 有关版本的信息
vim Chart.yaml
# values.yaml 部署的信息
vim values.yaml
# 检查依赖和模板配置是否正确
helm lint .
# 打包自建的项目
helm package mychart
示例截图:
push 自建的 chart
# 获取环境
helm env
# 新建存放插件的目录,默认没有,需要手动创建
mkdir -p /root/.local/share/helm/plugins/push
# 解压 push 插件到,新建的插件目录
tar zxf helm-push_0.9.0_linux_amd64.tar.gz -C /root/.local/share/helm/plugins/push/
# 上传 自建的chart到,私有仓库,私有仓库需要支持 helm chart
helm push mychart-0.1.0.tgz mychart --insecure -u admin -p westos
# 更新数据
helm repo update
# 搜索是否上传成功
helm search repo mychart -l
示例截图:
部署自建的 chart
# 从本地仓库部署
helm install webserver mychart/mychart
helm list
# 验证是否部署成功
kubectl get pod -o wide
curl 10.244.141.217
示例截图:
版本控制
升级
# 更改部署应用版本
vim values.yaml
#更改chart 版本
vim Chart.yaml
# 校验合法,打包,上传
helm lint .
helm package mychart/
helm push mychart-0.2.0.tgz mychart --insecure -u admin -p westos
# 更新,搜索可以看到,表示上传成功
helm repo update
helm search repo mychart -l
# 部署(升级)
helm install webserver mychart/mychart
helm list
# 验证是否部署成功
kubectl get pod -o wide
curl 10.244.141.224
版本回滚
# 查看 webserver 的部署版本历史
helm history webserver
# 回退版本,指定历史,这里是回退到第一个版本历史
helm rollback webserver 1
# 验证是否回退
kubectl get pod -o wide
curl 10.244.141.225