# helm-comm **Repository Path**: zhangkestudy/helm-comm ## Basic Information - **Project Name**: helm-comm - **Description**: helm模板仓库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-18 - **Last Updated**: 2024-07-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # helm-comm #### 介绍 helm模板仓库 #### 使用说明 HELM部署模板,变量配置在values.yaml文件内,大部分参数都可以通过helm传参方式注入到部署模板内,当前仅支持deployment和service。 通用部署命令 #此命令使用--dry-run参数,为模拟运行,实际并不会创建相应资源。 #使用此命令,将创建一个deployment和一个service ``` helm upgrade \ --namespace ${NAMESPACE} \ --dry-run \ --install ${PROJECT_NAME} . \ --set fullnameOverride=${PROJECT_NAME} \ --set namespace=${NAMESPACE} \ --set appInfo.servicename=${PROJECT_NAME} \ --set healthcheck.healthcheckport=${PORT} \ --set service.port=${PORT} \ --set imagePullSecretsName=${REGISTRY_SECRET} \ --set image.repository=${IMAGE_ADDR}/${PROJECT_NAME} \ --set image.tag=${IMAGE_VERSION} \ --set healthcheck.type=true \ --set env.TZ=Asia/Shanghai \ --set labels.app=${PROJECT_NAME} ``` 必须参数说明 ``` NAMESPACE: 名称空间 PROJECT_NAME: 项目名(运行的服务名,必须提供) PORT: 端口(默认为80,一般需要修改) REGISTRY_SECRET: 镜像拉取密钥(必须提供) IMAGE_ADDR: 镜像仓库URL(必须提供) IMAGE_VERSION: 镜像标签(必须提供) ``` #### 详细参数数码 参数列表: ``` --set fullnameOverride=${PROJECT_NAME} #修改服务名 --set namespace=${NAMESPACE} #修改服务部署的名称空间 --set appInfo.servicename=${PROJECT_NAME} #修改服务名 --set service.port=${PORT} #修改服务端口 --set imagePullSecretsName=${REGISTRY_SECRET} #拉取镜像密钥 --set image.repository=${IMAGE_ADDR}/${PROJECT_NAME} #镜像仓库 --set image.tag=${IMAGE_VERSION} #镜像标签 --set healthcheck.type=true #启动健康检查,默认配置 --set healthcheck.healthcheckport=${PORT} #修改服务健康检查端口 --set env.TZ=Asia/Shanghai #添加环境变量,若有多个,多行注入即可 --set labels.app=${PROJECT_NAME} #标签选择器 --set replicaCount=${REPLICAS} #修改部署的副本数,不添加此参数默认为1个副本 --set healthcheck.type=true #启动健康检查,默认为true,若要关闭,需修改该值为false --set healthcheck.readinessType="http" #修改健康检查方式为http,默认为tcpSocket --set healthcheck.livenessType="http" #修改健康检查方式为http,默认为tcpSocket --set healthcheck.livenesspath=/live #修改HTTP检查路径 --set healthcheck.readinesspath=/ready #修改HTTP检查路径 --set healthcheck.readinessProbe.initialDelaySeconds=30 #初次健康检查等待时长 --set healthcheck.readinessProbe.periodSeconds=15 #健康检查间隔 --set healthcheck.livenessProbe.initialDelaySeconds=30 --set healthcheck.livenessProbe.periodSeconds=15 --set healthcheck.startupProbe.initialDelaySeconds=30 --set healthcheck.startupProbe.periodSeconds=15 --set env.TZ=Asia/Shanghai #添加启动环境变量 --set service.type=NodePort ##修改service类型,默认为ClusterIP --set service.nodePort=30730 ##修改nodePort监听端口 --set resources.limits.cpu=4000m #修改CPU限制,默认为1C --set resources.limits.mem=4096Mi #修改内存限制,默认为2G --set-string command="{/bin/bash,-c,docker ps}" #修改启动命令,多为java程序需要 --set nodeSelector.type=pro #添加节点选择器 --set strategy.rollingUpdate.maxSurge #修改更新策略,默认为最大多一个pod,最小少0个pod,即先启动1个,再缩一个。 --set strategy.rollingUpdate.maxUnavailable --set tolerationstype=true #启用污点配置,默认不启用,启用需注入污点配置信息,默认为 - key: "key" operator: "Equal" value: "value" effect: "NoSchedule" tolerationSeconds: 3600 ``` #### 使用示例 一个完整示例(java程序) ``` export NAMESPACE=test export PROJECT_NAME=test-helmchart export PORT=80 export REGISTRY_SECRET=harbor export IMAGE_ADDR=kekebest1234 export IMAGE_VERSION=v0.1 export ASPNETCORE_ENVIRONMENT=aabbcc export SKYWALKING__SERVICENAME=ccddee export REPLICAS=2 export jar_name=abc.jar helm upgrade \ --namespace ${NAMESPACE} \ --dry-run \ --install ${PROJECT_NAME} . \ --set fullnameOverride=${PROJECT_NAME} \ --set namespace=${NAMESPACE} \ --set appInfo.servicename=${PROJECT_NAME} \ --set healthcheck.healthcheckport=${PORT} \ --set service.port=${PORT} \ --set imagePullSecretsName=${REGISTRY_SECRET} \ --set image.repository=${IMAGE_ADDR}/${PROJECT_NAME} \ --set image.tag=${IMAGE_VERSION} \ --set healthcheck.type=true \ --set healthcheck.readinessType="http" \ --set healthcheck.livenessType="http" \ --set healthcheck.livenesspath=/live \ --set healthcheck.readinesspath=/ready \ --set env.ASPNETCORE_ENVIRONMENT=${ASPNETCORE_ENVIRONMENT} \ --set env.TZ=Asia/Shanghai \ --set env.ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyAPM.Agent.AspNetCore \ --set env.SKYWALKING__SERVICENAME=${SKYWALKING__SERVICENAME} \ --set service.type=NodePort \ --set service.nodePort=30730 \ --set resources.limits.cpu=4000m \ --set resources.limits.mem=4096Mi \ --set replicaCount=${REPLICAS} \ --set-string command="{java,-Djava.security.egd=file:/dev/./urandom,-XX:InitialRAMPercentage=75.0,-XX:MaxRAMPercentage=75.0,-XX:MinRAMPercentage=75.0,-jar,/opt/${jar_name}}" ``` ![示例](./image/image.png) 添加节点选择器 ``` helm upgrade \ --namespace ${NAMESPACE} \ --dry-run \ --install ${PROJECT_NAME} . \ --set fullnameOverride=${PROJECT_NAME} \ --set namespace=${NAMESPACE} \ --set appInfo.servicename=${PROJECT_NAME} \ --set appInfo.port=${PORT} \ --set service.port=${PORT} \ --set imagePullSecretsName=${REGISTRY_SECRET} \ --set image.repository=${IMAGE_ADDR}/${PROJECT_NAME} \ --set image.tag=${IMAGE_VERSION} \ --set healthcheck.type=true \ --set healthcheck.readinessType="http" \ --set healthcheck.livenessType="http" \ --set healthcheck.livenesspath=/live \ --set healthcheck.readinesspath=/ready \ --set env.ASPNETCORE_ENVIRONMENT=${ASPNETCORE_ENVIRONMENT} \ --set env.TZ=Asia/Shanghai \ --set env.ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyAPM.Agent.AspNetCore \ --set env.SKYWALKING__SERVICENAME=${SKYWALKING__SERVICENAME} \ --set labels.app=${PROJECT_NAME} \ --set service.type=NodePort \ --set service.nodePort=30730 \ --set resources.limits.cpu=4000m \ --set resources.limits.mem=4096Mi \ --set replicaCount=${REPLICAS} \ --set-string command="{/bin/bash,-c,docker ps}" \ --set nodeSelector.type=pro ```