helm 使用
使用helm模板安装一个服务
helm install DeployName -n NameSpace $ChartDir
调试 参数: --dry-run --debug 使用调试参数默认会把yaml文件输出到控制台
helm install --dry-run --debug DeployName -n NameSpace $ChartDir
全局变量参数的外部定义 --set key=values 外部定义的全局变量中,如果不是默认的内置变都需要在values.yaml 中自定义 优先获取外部定义的参数,其次使用values.yaml 中定义的全局变量
helm install --dry-run --debug DeployName -n NameSpace --set ingress.enabled=true --set projectGroup=exmaple-com-local $ChartDir
添加helm库
helm repo add --username=$user --password=$pwd RepoNName https://helm.repo.local/chartrepo/base
安装服务
helm install --username=$user --password=$pwd --dry-run --debug my-html -n default --set ingress.enabled=true reponame/html
完整html部署 #添加repo helm repo add --username=$user --password=$pwd reponame https://helm.repo.local/chartrepo/base #首次部署,需要部署service,ingress helm repo update && \ helm install deployName \ -n Namespace \ --set service.enabled=true \ --set image.repository=helm.repo.local/base/html \ --set image.tag=v2xxx \ --set projectGroup=project-group \ --set projectName=project \ --set ingress.enabled=true \ --set duoble=true \ --set domain=test.example.com \ --set domain2=test1.example.com \ --set secretName=example-com-secret \ reponame/html 再次部署,只需要更新deployment helm repo update && \ helm upgrade deployName \ -n Namespace \ --set service.enabled=true \ --set image.repository=helm.repo.local/base/html \ --set image.tag=v2xxx \ --set projectGroup=project-group \ --set projectName=project \ --set ingress.enabled=true \ --set duoble=true \ --set domain=test.example.com \ --set domain2=test1.example.com \ --set secretName=example-com-secret \ reponame/html参数说明 参数| 值| 说明 ---|---|--- replicasCount|int|副本集数量 image.repository|string | 镜像名 image.pullPolicy| Always / IfNotPresent / Never | 拉取镜像策略 image.tag| any | 镜像标签 imagePullSecrets|string| 拉取镜像时所需secret containerPort|int|容器自定义端口,默认是80 seletorLabels|string|默认为空,部署deployment时打的标签,默认使用deployName projectGroup|string|deploy所属项目组 projectName|string|deploy所属项目 service.enabled|bool|是否配置service,默认是:false,需要配置则更改为:true service.type|clusterIP / LoadBalancer / ExternalName / NodePort |service类型 service.port|int|service 监听端口 duoble|bool|是否配置双域名,默认是:false,需要配置则更改为:true domain|string [xxx.example.local]|域名,开启ingress配置时需要传递值,默认为空 domain2|string [xxx.example.local]|域名【默认为空,配置双域名时需要传递值】 secretName|string|域名证书secret【默认为空,配置需要传递值】 ingress.enabled| bool | 是否配置ingress,默认是:false,需要配置则更改为:true ingress.annotations| dict | ingress的注释 resources| dict | 资源分配 autoscaling| dict | 自动伸缩配置,默认不配置 nodeSelector| dict | 节点标签,默认不配置 tolerations| list | 污点容忍,默认不配置 affinity| dict | 污点容忍,默认不配置