ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Linux Command 项目中的 Helm 实战指南:Kubernetes 包管理器的安装、Chart 操作与集群部署

Linux Command 项目中的 Helm 实战指南:Kubernetes 包管理器的安装、Chart 操作与集群部署 文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载Helm 是 Kubernetes 生态中最常用的包管理工具类比 Ubuntu 的 apt、CentOS 的 yum 或 macOS 的 Homebrew它通过 Chart一种打包了镜像、依赖关系与资源定义的标准格式来定义、安装和升级复杂的 Kubernetes 应用。本文以 Helm 为核心完整讲解安装方式、全部常用命令、Chart 目录结构与核心配置文件并结合当前仓库中 k8s/helm/charts/linux-command 这一真实 Chart 实例演示如何把一个静态网站应用linux-command部署到 Kubernetes 集群。读完本文你将掌握从添加仓库、搜索 Chart、安装/升级/回滚 release到自定义 values、打包与校验 Chart 的完整技能链。Helm 是什么Kubernetes 的包管理器Helm 解决的核心问题是Kubernetes 原生 YAML 资源分散、难以复用和版本化。Chart 是 Helm 的打包格式一个 Chart 内聚了运行一个应用所需的镜像、依赖关系、资源定义Deployment、Service 等与默认配置值。使用 Helm 的最大好处是可以直接使用社区或厂商开发好的 Chart而无需自己从零配置和部署复杂应用。Helm 3 相比早期版本移除了 Tiller 服务端组件客户端直接通过 Kubernetes API 与集群交互不再需要额外配置 RBAC安装与使用门槛大幅降低。安装 Helm原文档提供了四种主流安装方式覆盖 macOS、Linux 以及源码编译场景# macOS (Homebrew) brew install helm # Linux官方一键安装脚本 curl -fsSL -o get_helm.sh Helm官方安装脚本地址 chmod 700 get_helm.sh ./get_helm.sh # 从源码编译安装 git clone Helm官方源码仓库 cd helm make bootstrap make build sudo make install # 下载预编译二进制文件 versionv3.14.0 curl -LO https://get.helm.sh/helm-$version-linux-amd64.tar.gz tar -zxvf helm-$version-linux-amd64.tar.gz sudo mv linux-amd64/helm /usr/local/bin/helm要点说明Homebrew 方式适用于 macOS 开发者一条命令即可完成安装与 PATH 配置。官方脚本方式适用于绝大多数 Linux 发行版脚本会自动探测系统架构并安装对应版本。源码编译适合需要定制或二次开发 Helm 的场景依赖 Go 工具链。预编译二进制是服务器环境最可控的方式下载对应架构如linux-amd64的压缩包解压后将helm二进制放入/usr/local/bin即可全局使用。安装完成后可用helm version验证。Helm 语法与命令总览Helm 的基础语法为helm [command]全部功能命令如下completion 为指定的shell生成自动补全脚本 create 创建一个新的Chart debug 调试Chart deprecated 列出已弃用的命令 diff 显示release和Chart之间的差异 env 显示Helm环境变量 feature 列出并切换特性标志 fetch 从仓库下载Chart到本地 get 下载额外的信息 help 帮助命令 history 获取release的历史记录 install 安装一个Chart lint 检查Chart是否存在问题 list 列出releases manicreate 生成Helm手册 message 显示信息 module 管理Helm模块 package 将chart目录打包到chart版本中 plugin 安装、列出或卸载Helm插件 pull 从仓库下载Chart到本地 repo 添加、列出、移除、更新和索引仓库 release release信息 render 本地渲染模板 rollback 将release回滚到以前的版本 search 搜索charts show 显示chart的信息 template 本地渲染模板 token 管理Helm认证令牌 uninstall 卸载release upgrade 升级release version 显示Helm版本从功能上可以划分为几大族群仓库管理repo add/list/update/remove、search、生命周期管理install、upgrade、rollback、uninstall、history、list、status、Chart 开发create、package、lint、template、show、pull、dependency、扩展能力plugin、completion以及信息查询get、env、version。实战一仓库管理、搜索与安装 Chart添加与维护 Chart 仓库# 添加官方Helm仓库 helm repo add bitnami https://charts.bitnami.com/bitnami helm repo add stable https://charts.helm.sh/stable # 更新仓库索引 helm repo update # 列出已添加的仓库 helm repo list # 删除仓库 helm repo remove bitnamihelm repo add添加的仓库信息保存在~/.config/helm/repositories.yaml中添加后需执行helm repo update拉取最新索引后续search、install才能基于最新版本工作。搜索 Chart# 搜索仓库中的MySQL相关Chart helm search repo mysql # 搜索Helm Hub上的Chart helm search hub mysqlhelm search repo在已添加的本地仓库索引中检索helm search hub则面向 Helm Hub 中央库检索全网公开 Chart。安装 Chartinstall# 安装MySQL Chartrelease 名为 my-mysql helm install my-mysql bitnami/mysql # 安装指定版本的Chart helm install my-mysql bitnami/mysql --version 9.10.0 # 安装并指定命名空间不存在时自动创建 helm install my-release bitnami/nginx -n development --create-namespace # 安装并指定values文件 helm install my-release bitnami/mysql -f custom-values.yaml # 安装并设置自定义值 helm install my-release bitnami/mysql --set mysqlRootPasswordsecret参数组合非常灵活--version锁定 Chart 版本Chart 版本遵循语义化版本 SemVer-n/--namespace与--create-namespace控制部署命名空间-f从外部 YAML 文件注入配置值--set以keyvalue形式覆盖单个配置项是 CI/CD 场景最常用的动态注入方式。查看与列出 release# 查看release状态 helm status my-release # 列出所有releases helm list # 列出指定命名空间的releases helm list -n development卸载 release# 卸载release连同其管理的Kubernetes资源 helm uninstall my-release # 卸载但保留历史记录便于日后查看/回滚 helm uninstall my-release --keep-history--keep-history会保留 release 的审计记录适用于需要保留卸载痕迹的生产环境。实战二升级与回滚 release# 查看release的历史版本 helm history my-release # 升级release使用同一Chart的新版本 helm upgrade my-release bitnami/mysql # 升级并设置新的值 helm upgrade my-release bitnami/mysql --set mysqlRootPasswordnewsecret # 回滚到上一个版本 helm rollback my-release # 回滚到指定版本 helm rollback my-release 2helm upgrade完成滚动更新helm history展示每次 release 的修订号revisionhelm rollback可按修订号精确回退。建议在生产环境配合命名空间隔离不同 release并可通过helm diff插件在升级前预览资源差异降低变更风险。实战三Chart 开发、打包、渲染与校验创建与打包 Chart# 创建新的Chart生成标准目录骨架 helm create my-chart # 打包Chart为可发布的tgz归档 helm package my-charthelm create会生成一个完整的标准 Chart 骨架含 Chart.yaml、values.yaml、templates 等helm package则将其打包为版本化归档文件便于发布到 Chart 仓库。本地渲染模板不实际部署# 本地渲染模板不安装 helm template my-release bitnami/mysql # 渲染并输出YAML文件 helm template my-release bitnami/mysql mysql.yamlhelm template只做渲染、不触碰集群是审查最终 YAML 的最佳手段。渲染结果可重定向到文件供评审或直接kubectl apply使用。校验与信息查看# 检查Chart是否存在问题 helm lint my-chart # 检查远程Chart helm lint bitnami/mysql # 查看Chart的详细信息 helm show all bitnami/mysql # 查看Chart的values可读默认配置 helm show values bitnami/mysql # 查看Chart的README helm show readme bitnami/mysql # 下载Chart到本地 helm pull bitnami/mysql # 下载并解压Chart helm pull bitnami/mysql --untarhelm lint对 Chart 做静态检查模板语法、必填字段等helm show values是了解一个陌生 Chart 可配置项的快捷入口helm pull --untar下载并解压 Chart 到本地便于离线部署或二次修改。依赖与高级用法# 检查Chart的依赖 helm dependency list my-chart # 更新Chart的依赖 helm dependency update my-chart # 安装带有依赖的Chart可临时禁用子依赖 helm install my-release ./my-chart --set redis.enabledfalse # 使用OCI注册表拉取Chart helm pull oci://registry-1.docker.io/bitnamicharts/mysql # 查看已安装的插件 helm plugin list # 安装插件 helm plugin install 插件仓库地址 # 卸载插件 helm plugin uninstall 插件名现代 Helm 同时支持传统 Chart 仓库与 OCI 镜像仓库两种分发方式oci://前缀即表示从 OCI 注册表拉取。插件机制如常用的 diff 插件通过helm plugin install扩展 Helm 能力。Helm Chart 目录结构标准的 Helm Chart 目录结构如下my-chart/ ├── Chart.yaml # Chart元数据名称、版本等 ├── values.yaml # 默认配置值 ├── charts/ # 依赖的Chart ├── templates/ # 模板文件 │ ├── deployment.yaml │ ├── service.yaml │ └── _helpers.tpl # 辅助模板 ├── .helmignore # 忽略文件模式 └── README.md # Chart说明文档各文件职责Chart.yaml声明 Chart 的名称、类型、版本version与应用版本appVersionvalues.yaml默认配置值模板通过.Values引用templates/Go 模板渲染的 Kubernetes 资源清单charts/存放嵌套依赖的 Chart_helpers.tpl定义可复用的命名模板named template.helmignore打包时需要排除的文件模式类似.gitignoreREADME.mdChart 的使用与参数说明。常用配置文件解析Chart.yaml 示例apiVersion: v2 name: my-app description: A Helm chart for Kubernetes version: 0.1.0 appVersion: 1.16.0apiVersion: v2表示 Helm 3 的 Chart 格式version是 Chart 自身的版本号遵循语义化版本SemVer每次修改 Chart 都应递增appVersion是所部署应用的版本建议加引号以保留字符串语义如1.16.0。values.yaml 示例replicaCount: 1 image: repository: nginx tag: latest pullPolicy: IfNotPresent service: type: ClusterIP port: 80values.yaml 是 Chart 的可调参数面板image.repository与image.tag组合构成镜像地址image.pullPolicy控制拉取策略Always/IfNotPresent/Neverservice.type决定对外暴露方式。仓库实战用 Helm 部署 linux-command 静态站当前仓库自带一个完整的 Helm Chart 实例位于 k8s/helm/charts/linux-command用于将本项目的静态站点以 Helm 方式部署到 Kubernetes。该 Chart 是应用型 Charttype: application正好可作为上面理论知识的落地范本。安装与卸载按照 k8s/helm/charts/linux-command/README.md 的说明在仓库根目录执行# 安装同时创建命名空间 helm install linux-command ./k8s/helm/charts/linux-command --namespace linux-command --create-namespace # 卸载删除全部Kubernetes组件与release记录 helm -n linux-command uninstall linux-command也可以使用-f values.yaml提供自定义参数文件helm install release-name -f values.yaml ./k8s/helm/charts/linux-commandChart 元数据与模板设计Chart.yaml 声明了 Chart 名称为linux-command、类型为应用型 Chart、version: 0.1.0、appVersion: 0.1.0与上述标准结构完全对应。模板侧deployment.yaml 通过{{ include linux-command.fullname . }}等 helper 生成资源名并读取.Values.linuxCommand.replicas、.Values.linuxCommand.linuxCommandContainer.image.repository与.tag拼装镜像地址tag缺省时回退到.Chart.AppVersion同时把resources通过toYaml原样渲染service.yaml 则将.Values.service.ports直接渲染为 Service 端口列表。公共模板集中在 _helpers.tpl定义了linux-command.name、linux-command.fullname、linux-command.labels、linux-command.selectorLabels等命名模板并遵循 DNS 命名规范将名称截断到 63 字符——这些正是生产级 Chart 的常见写法。可配置参数一览values.yaml 与 README 中的参数表定义了以下可调项Key类型默认值linuxCommand.linuxCommandContainer.image.repositorystringwcjiang/linux-commandlinuxCommand.linuxCommandContainer.image.tagstringlatestlinuxCommand.linuxCommandContainer.imagePullPolicystringIfNotPresentlinuxCommand.linuxCommandContainer.resources.limits.cpustring100mlinuxCommand.linuxCommandContainer.resources.limits.memorystring50MilinuxCommand.linuxCommandContainer.resources.requests.cpustring100mlinuxCommand.linuxCommandContainer.resources.requests.memorystring50MilinuxCommand.replicasint1service.ports[0].portint9665service.ports[0].protocolstringTCPservice.ports[0].targetPortint3000service.typestringNodePort应用容器监听 3000 端口对应镜像内静态站服务端口Service 以NodePort类型将 9665 端口映射到集群节点。部署后访问方式为http://Node-IP:NodePort。此外仓库 k8s/linux-command.yaml 还提供了一份免 Helm 的纯kubectl apply部署清单Namespace Deployment Service参数与 Chart 默认值保持一致适合未引入 Helm 的轻量场景可与本文的 Helm 流程相互印证。使用注意事项Helm 3 已移除 Tiller 组件不再需要为其配置 RBAC。helm repo add添加的仓库信息保存在~/.config/helm/repositories.yaml。Chart 的版本号遵循语义化版本SemVer。可以通过--dry-run参数预览安装效果而不实际部署降低误操作风险。使用helm diff插件可以查看升级前后的资源差异。生产环境建议使用命名空间隔离不同的 release。可以通过--wait参数等待所有资源就绪后再返回避免脚本提前进入下一步。相关命令Helm 通常与以下工具配合使用构成完整的 Kubernetes 工作流kubectl— Kubernetes 集群管理工具用于查看 Pod、Service、Deployment 等资源状态minikube— 本地 Kubernetes 开发环境适合在单机调试 Chartkubeadm— Kubernetes 集群安装工具用于搭建生产级集群。结合当前仓库的实践路径先用helm create生成骨架或直接复用 k8s/helm/charts/linux-command 这一现成 Chart再用helm lint校验、helm template预览渲染结果最后helm install完成部署配合kubectl get pods -n linux-command观察运行状态即可完整跑通开发 → 校验 → 渲染 → 部署 → 运维的 Helm 使用闭环。赞分享文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载相关推荐vcluster Helm Chart 部署实战指南在现有 Kubernetes 集群上安装、连接与管理虚拟集群vcluster Helm Chart 部署实战指南在现有 Kubernetes 集群上安装、连接与管理虚拟集群 本篇技术指南围绕 vcluster 官方 H云原生集群管理虚拟化多集群Apache DolphinScheduler Helm Chart 完全指南Kubernetes 集群部署、配置与实战Apache DolphinScheduler Helm Chart 完全指南Kubernetes 集群部署、配置与实战 Apache DolphinSche任务调度大数据后端前端OpenClaw 实战第 3 天为你的 Claw 接入 Telegram 消息通道让随身 AI 助理真正随时在线OpenClaw 实战第 3 天为你的 Claw 接入 Telegram 消息通道让随身 AI 助理真正随时在线 在 OpenClaw 的世界里ch文档教程人工智能大模型上一篇CubeSandbox Security Proxy 深度指南基于 CubeEgress 的 L7 透明出网代理、规则拦截与审计体系下一篇7个实用技巧如何高效参与Blender开源社区贡献创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表