一 Helm如何安装?通过gitlab仓库下载压缩包tar xf helm-v4.2.2-linux-amd64.tar.gzcd linux-amd64/将启动命令拷贝到系统命令下cp helm /usr/bin/查看helm version软件仓库helm repo add bitnami https://charts.bitnami.com/bitnami解析helm repo helm 的子命令专门管理 Chart 软件仓库对应操作新增、删除、更新、查看仓库。 add 动作添加一个远程仓库到你本地 helm 客户端相当于给 helm 装一个 “应用商店”。 bitnami 自定义本地仓库别名名字你可以随便改比如 bn后续搜索 / 安装时用这个别名调用仓库例如 helm search repo bitnami/nginx。 https://charts.bitnami.com/bitnami 远程仓库真实地址Bitnami 官方 Chart 源里面预打包了 nginx、mysql、redis、kafka 等上百种中间件 / 业务服务的 K8s 部署模板。相关查看当前所有已添加的仓库 helm repo list 拉取仓库最新版本索引更新商店商品列表 helm repo update 在bitnami仓库搜索nginx helm search repo bitnami/nginx 直接安装仓库里的nginx到远端k8s集群 helm install my-nginx bitnami/nginx二 连接k8s集群时间同步安装时间同步工具yum install -y chrony启动并开机自启systemctl start chronyd systemctl enable chronyd强制同步时间chronyc sourceschronyc makestep验证当前时间date本机装 Helm 的机器 网络能通 K8s APIServer6443 端口本机 存有集群合法授权的 kubeconfig 文件从 K8s Master 拷贝集群凭证/root/.kube/config将下载好的config文件移入该目录mkdir -p ~/.kube cd ~/.kubemv ./config ~/.kube/config测试连通性查看集群节点能正常输出代表连通成功kubectl get nodeshelm 直接操作远端集群给你的 helm 客户端添加一个名叫bitnami的公共 Chart 软件源以后安装中间件、web 服务都可以从这个源拉取模板。helm repo add bitnami https://charts.bitnami.com/bitnami每执行一次 helm install就会在集群生成一个 Release就是 helm 管理的应用记录包含 deployment、service、pod 等整套资源。helm list --all-namespaces相关查看已添加的所有仓库 helm repo list 更新仓库里所有Chart版本索引拉取最新应用版本 helm repo update 搜索仓库里的nginx helm search repo bitnami/nginx 安装bitnami仓库的nginx helm install nginx bitnami/nginx三 Helm的安装包结构解析helm里面不叫安装包,是对每一个安装包的名字叫chart创建web的charthelm create web查看新建的web的chart的结构cd web tree重点:chart.yaml (里面定义了资源信息)version: 0.1.0 —— Helm 安装包Chart自己的版本这是打包模板文件的版本号管的是「你这套 K8s 部署模板改没改」。改动场景只要改下面任意一个就要升级这个 version 改了 deployment/service/ingress 这些 yaml 模板 改了 values.yaml 默认参数 改了 Chart.yaml 里的注释、依赖、描述 哪怕只是调整资源限制、探针配置规则必须严格遵循语义化版本0.1.0 → 0.1.1 → 0.2.0appVersion: 1.16.0 —— 容器镜像内部应用的版本这是程序本身的版本对应镜像 tag管的是「容器里跑的软件是什么版本」。作用给人看当前 Chart 配套的应用版本模板里可以通过 .Chart.AppVersion 读取填进镜像 tagcharts 是一个嵌套的结构charts/目录内放置本地依赖子 Chart是父 Chart 运行必须依赖的组件包例如业务主 Chart 依赖 MySQL、Redis、Nginx 时可把这几个 Chart 放入charts/。templates里面存放的是各种服务的yaml模版渲染语法相关的NOTES..txt_helpers.tpltests用来测试服务有没有起来values.yaml里面存放被yaml模版指定的的参数四 Helm参数渲染语法解析values的值是如何运用到tamplate中的记住核心3种渲染语法 那deployment.yaml举例1. 在values.yaml中写入的值会是基于tamplate下面的_helpers.tpl 里面写好了预定义变量传到 tamplate下面的模版中2. if的判断看后面自动伸缩是否开启开启的话就不需要定义下面的replicaCount自动伸缩会自己去判断副本数该定义为多少没有开启的话才需要定义3. with是判断podAnnotations在values.yaml中有没有定义该字段的值写了渲染,反之五 Helm服务安装,升级,回退根据模版里面定义的预定义变量到values.YAML中去修改 --镜像的话是版本和tag标签是分开放的服务安装helm install web(chart名字) . -n test服务安装好的通知是在templates下面的NOTES.txt升级看历史版本helm history web -n test在values中对于tag标签修改helm upgrade web . -n test --atomic--atomic 是在服务升级失败回退到之前的版本查看kubectl get podkubectl get pod pod名 -n test -oyaml回退helm rollback web -n test默认回退到上一个版本, 是新增一个版本回退到指定版本helm rollback web 指定版本序号 -n test不要这个服务helm uninstall web -n test六 Helm包管理仓库(类似于ubuntu软件源)harbor里面也可以推送helm的包helm --help 帮助文档helm package web这个版本号 ---对应 version: 0.1.0 —— Helm 安装包Chart自己的版本拉取的helm包浏览器搜索 -- helm repo拉下来之后要解压 tar xf!!!
Helm 的新手快速攻略
一 Helm如何安装?通过gitlab仓库下载压缩包tar xf helm-v4.2.2-linux-amd64.tar.gzcd linux-amd64/将启动命令拷贝到系统命令下cp helm /usr/bin/查看helm version软件仓库helm repo add bitnami https://charts.bitnami.com/bitnami解析helm repo helm 的子命令专门管理 Chart 软件仓库对应操作新增、删除、更新、查看仓库。 add 动作添加一个远程仓库到你本地 helm 客户端相当于给 helm 装一个 “应用商店”。 bitnami 自定义本地仓库别名名字你可以随便改比如 bn后续搜索 / 安装时用这个别名调用仓库例如 helm search repo bitnami/nginx。 https://charts.bitnami.com/bitnami 远程仓库真实地址Bitnami 官方 Chart 源里面预打包了 nginx、mysql、redis、kafka 等上百种中间件 / 业务服务的 K8s 部署模板。相关查看当前所有已添加的仓库 helm repo list 拉取仓库最新版本索引更新商店商品列表 helm repo update 在bitnami仓库搜索nginx helm search repo bitnami/nginx 直接安装仓库里的nginx到远端k8s集群 helm install my-nginx bitnami/nginx二 连接k8s集群时间同步安装时间同步工具yum install -y chrony启动并开机自启systemctl start chronyd systemctl enable chronyd强制同步时间chronyc sourceschronyc makestep验证当前时间date本机装 Helm 的机器 网络能通 K8s APIServer6443 端口本机 存有集群合法授权的 kubeconfig 文件从 K8s Master 拷贝集群凭证/root/.kube/config将下载好的config文件移入该目录mkdir -p ~/.kube cd ~/.kubemv ./config ~/.kube/config测试连通性查看集群节点能正常输出代表连通成功kubectl get nodeshelm 直接操作远端集群给你的 helm 客户端添加一个名叫bitnami的公共 Chart 软件源以后安装中间件、web 服务都可以从这个源拉取模板。helm repo add bitnami https://charts.bitnami.com/bitnami每执行一次 helm install就会在集群生成一个 Release就是 helm 管理的应用记录包含 deployment、service、pod 等整套资源。helm list --all-namespaces相关查看已添加的所有仓库 helm repo list 更新仓库里所有Chart版本索引拉取最新应用版本 helm repo update 搜索仓库里的nginx helm search repo bitnami/nginx 安装bitnami仓库的nginx helm install nginx bitnami/nginx三 Helm的安装包结构解析helm里面不叫安装包,是对每一个安装包的名字叫chart创建web的charthelm create web查看新建的web的chart的结构cd web tree重点:chart.yaml (里面定义了资源信息)version: 0.1.0 —— Helm 安装包Chart自己的版本这是打包模板文件的版本号管的是「你这套 K8s 部署模板改没改」。改动场景只要改下面任意一个就要升级这个 version 改了 deployment/service/ingress 这些 yaml 模板 改了 values.yaml 默认参数 改了 Chart.yaml 里的注释、依赖、描述 哪怕只是调整资源限制、探针配置规则必须严格遵循语义化版本0.1.0 → 0.1.1 → 0.2.0appVersion: 1.16.0 —— 容器镜像内部应用的版本这是程序本身的版本对应镜像 tag管的是「容器里跑的软件是什么版本」。作用给人看当前 Chart 配套的应用版本模板里可以通过 .Chart.AppVersion 读取填进镜像 tagcharts 是一个嵌套的结构charts/目录内放置本地依赖子 Chart是父 Chart 运行必须依赖的组件包例如业务主 Chart 依赖 MySQL、Redis、Nginx 时可把这几个 Chart 放入charts/。templates里面存放的是各种服务的yaml模版渲染语法相关的NOTES..txt_helpers.tpltests用来测试服务有没有起来values.yaml里面存放被yaml模版指定的的参数四 Helm参数渲染语法解析values的值是如何运用到tamplate中的记住核心3种渲染语法 那deployment.yaml举例1. 在values.yaml中写入的值会是基于tamplate下面的_helpers.tpl 里面写好了预定义变量传到 tamplate下面的模版中2. if的判断看后面自动伸缩是否开启开启的话就不需要定义下面的replicaCount自动伸缩会自己去判断副本数该定义为多少没有开启的话才需要定义3. with是判断podAnnotations在values.yaml中有没有定义该字段的值写了渲染,反之五 Helm服务安装,升级,回退根据模版里面定义的预定义变量到values.YAML中去修改 --镜像的话是版本和tag标签是分开放的服务安装helm install web(chart名字) . -n test服务安装好的通知是在templates下面的NOTES.txt升级看历史版本helm history web -n test在values中对于tag标签修改helm upgrade web . -n test --atomic--atomic 是在服务升级失败回退到之前的版本查看kubectl get podkubectl get pod pod名 -n test -oyaml回退helm rollback web -n test默认回退到上一个版本, 是新增一个版本回退到指定版本helm rollback web 指定版本序号 -n test不要这个服务helm uninstall web -n test六 Helm包管理仓库(类似于ubuntu软件源)harbor里面也可以推送helm的包helm --help 帮助文档helm package web这个版本号 ---对应 version: 0.1.0 —— Helm 安装包Chart自己的版本拉取的helm包浏览器搜索 -- helm repo拉下来之后要解压 tar xf!!!