一、HELM简介
Helm是Kubernetes 应用的包管理工具,主要用来管理 Charts,类似Linux系统的yum。
Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。
对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。
对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序。
Helm V3 与 V2 最大的区别在于去掉了tiller:
HELM安装配置
server2中
mkdir helm
cd helm/
tar zxf helm-v3.4.1-linux-amd64.tar.gz
cd linux-amd64/
cp helm /usr/local/bin/ #设置环境变量
helm env #查看环境变量
helm list #查看应用
echo "source <(helm completion bash)" >> ~/.bashrc #设置补齐命令
cat .bashrc #查看环境变量
更新环境变量即可使用helm
source .bashrc #更新环境变量
添加第三方软件仓库
helm repo add bitnami https://charts.bitnami.com/bitnami
配
置redis-cluster镜像
helm pull bitnami/redis-cluster
解压安装包后更改仓库
mv redis-cluster-6.3.2.tgz helm/
cd helm/
tar zxf redis-cluster-6.3.2.tgz
cd redis-cluster/
vim values.yaml
12 imageRegistry: "reg.westos.org"
找到标签
72 tag: 6.2.5-debian-10-r0
本地软件仓库新建bitnami公开仓库
server1仓库服务器中,从网络拉取redis-cluster,上传至本地镜像仓库
docker pull bitnami/redis-cluster:6.2.5-debian-10-r0
docker tag docker.io/bitnami/redis-cluster:6.2.5-debian-10-r0 reg.westos.org/bitnami/redis-cluster:6.2.5-debian-10-r0
docker push reg.westos.org/bitnami/redis-cluster:6.2.5-debian-10-r0
server2构建一个 Helm Chart
yum install -y tree
helm create mychart
cd mychart/
修改Chart.yaml
修改values.yaml
应用chart
helm lint
server1仓库中,重新安装带chartmuseum的仓库
docker-compose down
./install.sh --with-chartmuseum
在仓库新建charts公开项目
server2打包
cd ~/helm/
helm package mychart/
cd /etc/pki/ca-trust/source/anchors/ #复制认证
update-ca-trust #更新信任
helm repo add westos https://reg.westos.org/chartrepo/charts
准备好push包,安装
mv helm-push_0.9.0_linux_amd64.tar.gz ~/helm
helm env
mkdir -p ~/.local/share/helm/plugins/push
tar zxf helm-push_0.9.0_linux_amd64.tar.gz -C ~/.local/share/helm/plugins/push
查看上传的mychart应用
helm push mychart-0.1.0.tgz westos --insecure -u admin -p westos
更新镜像
helm repo update
helm search repo mychart
部署mychart应用到k8s集群
helm install mychart westos/mychart
kubectl get svc
curl 10.106.158.232
更新tag
应用
cd ..
helm lint mychart
重新打包并上传
helm package mychart
helm push mychart-0.2.0.tgz westos --insecure -u admin -p westos
helm repo update
查看更新
测试更新是否成功
回滚
helm history mychart
helm rollback mychart 1
测试回滚是否成功