安装helm
# 官方一键安装脚本 curl https://raw.githubusercontent.com/helm/helm/master/scripts/get > get_helm.sh $ chmod 700 get_helm.sh $ ./get_helm.sh
安装Tiller
先在 K8S 集群上每个节点安装 socat 软件(yum install -y socat),否则会报错
E0522 22:22:15.492436 24409 portforward.go:331] an error occurred forwarding 38398 -> 44134: error forwarding port 44134 to pod dc6da4ab99ad9c497c0cef1776b9dd18e0a612d507e2746ed63d36ef40f30174, uid : unable to do port forwarding: socat not found. Error: cannot connect to Tiller
国内安装使用阿里云的镜像,Google被墙
helm init --service-account tiller --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.13.1
查看所有的仓库
[root@k8s-master home]# helm repo list NAME URL stable https://kubernetes-charts.storage.googleapis.com local http://127.0.0.1:8879/charts
添加harbor的charts仓库
helm repo add --username helm --password Helm12345 home-helm http://home.lodsve.com:9013/chartrepo/helm
更新仓库
helm repo update
给 Tiller 授权
创建service account
kubectl create serviceaccount --namespace kube-system tiller kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
授权
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
验证是否成功
[root@k8s-master home]# kubectl get deploy --namespace kube-system tiller-deploy --output yaml | grep serviceAccount serviceAccount: tiller serviceAccountName: tiller
卸载
helm reset或者helm reset --force
创建charts
创建名为csc-fmis-config-server的chart
helm create csc-fmis-config-server
编辑各种文件:
[root@k8s-master workspace]# tree csc-fmis-config-server/ csc-fmis-config-server/ ├── Chart.yaml # Chart本身的版本和配置信息 ├── charts # 依赖的chart ├── README.md # readme ├── templates # 配置模板目录 │ ├── NOTES.txt # helm提示信息 │ ├── _helpers.tpl # 用于修改kubernetes objcet配置的模板 │ ├── deployment.yaml # k8s的部署yaml │ └── service.yaml # k8s的服务yaml └── values.yaml # 上面模板中使用到的值 2 directory, 7 files
使用go的template语法
检查配置和模板是否有效
helm install --dry-run --debug csc-fmis-config-server -f custom.yaml
可以使用外部yaml文件覆盖charts内部的values.yaml中的值,类似spring-boot中的application.yml一样
推送到远端helm charts repo
安装helm插件,以支持helm push
helm plugin install https://github.com/chartmuseum/helm-push
helm push
helm push csc-fmis-config-server/ --version="0.1.2" home-helm
push语法
$ helm push mychart-0.1.0.tgz chartmuseum # push .tgz from "helm package" $ helm push . chartmuseum # package and push chart directory $ helm push . --version="7c4d121" chartmuseum # override version in Chart.yaml $ helm push . https://my.chart.repo.com # push directly to chart repo URL
安装到k8s中
helm install csc-fmis-config-server
helm install csc-fmis-config-server -f custom.yaml
helm install csc-fmis-config-server --set foo=bar --set foo=newbar
helm install --help
查看其它用法helm list
Helm学习
本文标题:Helm学习
文章作者:孙昊(Hulk)
发布时间:2019-11-22, 00:00:00
最后更新:2025-03-31, 06:09:50
原始链接:https://www.crazy-coder.cn/2019/11/22/yun-wei/helm-yong-fa/
许可协议: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。