欢迎光临
我们一直在努力

Helm Chart入门指南

Helm Chart 从入门到精通:七天进阶教程

📅 第1天:Helm 基础概念与安装

Helm 是什么?

Helm 是 Kubernetes 生态中的事实标准包管理工具,类似于 Linux 系统中的 yum 或 apt。它通过 Chart(图表)来定义、安装和升级 Kubernetes 应用 。

核心概念

  • Chart:Helm 的打包格式,是描述一组 Kubernetes 相关资源的文件集合
  • Release:Chart 在集群中运行的实例
  • Repository:存储预置应用模板的远程/本地仓库

快速开始

# 添加官方仓库
helm repo add stable https://charts.helm.sh/stable
helm repo update

# 安装应用
helm install my-release stable/nginx

关键提示:生产环境强烈建议使用 Helm v3 版本,其去除了 Tiller 组件,采用更安全的 RBAC 模型 。


📅 第2天:Chart 结构与模板语法

Chart 目录结构

mychart/
├── Chart.yaml # Chart 元数据
├── values.yaml # 默认配置值
├── templates/ # 模板文件目录
│ ├── deployment.yaml
│ ├── service.yaml
│ └── _helpers.tpl
└── charts/ # 依赖子 Chart

模板语法基础

Helm 使用 Go template 引擎渲染模板,支持变量、条件判断和循环:

# 变量引用
apiVersion: {{ .Values.apiVersion }}
kind: {{ .Values.kind }}

# 条件判断
{{- if .Values.enabled }}
# 内容
{{- end }}

# 循环
{{- range .Values.items }}
– {{ . }}
{{- end }}


📅 第3天:常用命令与参数详解

核心命令语法

helm install [NAME] [CHART] [flags]

常用参数速查表

参数说明示例
–namespace 指定命名空间 -n myns
–values 覆盖 values 文件 -f overrides.yaml
–set 动态参数设置 –set replicaCount=3
–atomic 失败自动回滚 –atomic
–dry-run 模拟安装 –dry-run
–version 指定版本 –version 1.2.3

Chart 路径三种形式

  • 仓库引用:stable/nginx-ingress
  • 本地路径:./mychart
  • 打包文件:mychart-1.0.0.tgz

📅 第4天:Values 文件与配置管理

多环境配置策略

通过 values 文件实现环境差异化配置:

charts/
├── base/
│ └── values.yaml # 基础配置
├── production/
│ └── values.yaml # 生产环境覆盖
└── staging/
└── values.yaml # 测试环境覆盖

组合使用示例

helm install myapp ./chart \\
-f base/values.yaml \\
-f production/values.yaml

GitLab Runner 配置案例

# values.yaml
gitlabUrl: https://gitlab.example.com
rbac:
create: true
runnerToken: "your-token-here"
concurrent: 10

配置缓存存储(支持 S3/GCS/Azure):

runners:
cache:
secretName: s3access
type: s3

创建 Kubernetes 密钥:

kubectl create secret generic s3access \\
–from-literal=accesskey="YourAccessKey" \\
–from-literal=secretkey="YourSecretKey"


📅 第5天:依赖管理与多环境部署

依赖项控制

# 手动下载依赖
helm dependency update

# 构建依赖
helm dependency build

# 跳过依赖检查
helm install –skip-crds

蓝鲸平台 Helmfile 实践

使用 helmfile 管理多 release 部署:

# base.yaml.gotmpl
helmfiles:
– path: ./base-storage.yaml.gotmpl
– path: ./base-blueking.yaml.gotmpl
selectors:
– seq=first
– path: ./base-blueking.yaml.gotmpl
selectors:
– seq=second

通过 seq 标签控制启动次序,确保服务依赖关系正确 。

仓库配置

# 添加 Charts 仓库
helm repo add blueking https://hub.bktencent.com/chartrepo/blueking
helm repo update
helm repo list


📅 第6天:生产环境最佳实践

安全加固措施

  • 启用签名验证
  • helm install –verify –keyring ~/.gnupg/pubring.gpg

  • 限制权限范围
  • # values.yaml
    rbac:
    create: true
    rules:
    – apiGroups: [""]
    resources: ["pods"]
    verbs: ["get", "list"]

  • RBAC 配置
  • rbac:
    create: true
    serviceAccount:
    name: your-service-account

    版本控制策略

    • 采用语义化版本控制:helm install myapp –version ~1.2.3
    • 结合 GitOps 工作流:helm install –generate-name

    资源预检查

    helm install \\
    –set resources.requests.cpu=200m \\
    –set resources.limits.memory=1Gi


    📅 第7天:高级技巧与故障排查

    典型问题排查

    问题解决方案
    资源冲突 helm list –all-namespaces 检查现有 release
    CRD 未就绪 kubectl wait –for condition=established –timeout=60s crd/xxx
    安装失败 helm install –debug –dry-run 查看详细日志

    调试技巧

    # 查看渲染模板
    helm template mychart > debug.yaml

    # 详细日志输出
    helm install –debug –dry-run

    # 健康状态检查
    helm status myrelease

    版本升级与回滚

    # 无缝升级
    helm upgrade –install –wait –timeout 5m

    # 查看历史版本
    helm history myrelease

    # 执行回滚
    helm rollback myrelease 2

    资源清理策略

    # 保留历史记录
    helm uninstall –keep-history

    # 级联删除
    helm uninstall –cascade=background

    生产架构决策框架

    维度Cloud PlatformSelf-HostedLibrary Only
    运维负担 全部自行承担 最小
    数据控制 平台托管 完全控制 本地
    定制能力 受限 完全可修改 中等
    启动时间 分钟级 小时-天级 即时

    📊 学习路线总结

    阶段核心技能实践项目
    入门 (1-2天) 基础概念、Chart 结构 安装 nginx Chart
    进阶 (3-4天) 命令参数、Values 管理 多环境配置部署
    高级 (5-7天) 依赖管理、生产实践 GitLab Runner 完整部署

    通过这七天的系统学习,您将掌握从 Helm 基础到生产级部署的完整技能栈,能够独立设计和管理企业级 Kubernetes 应用部署方案。


    参考来源

    • 导入HyperDetect容器应用镜像和容器应用Chart – OceanStor Dorado V700R001 HyperDetect特性指南(文件业务) – 华为
    • Helm安装命令详解与Kubernetes包管理实践-CSDN博客
    • 文档中心 | 蓝鲸智云
    • 配置极狐GitLab Runner Helm chart – GitLab Runner – GitLab 文档中心
    • 邮件推送 数据结构_腾讯云
    • 附录3:自定义模板可用变量 · pppscn/SmsForwarder Wiki · GitHub
    • Mem0 生产级部署实战:从架构设计到K8s高可用落地的万字指南-CSDN博客
    • 极狐GitLab Runner Helm chart – GitLab Runner – GitLab 文档中心
    • 文档中心 | 蓝鲸智云

     

    赞(0)
    未经允许不得转载:171主机测评 » Helm Chart入门指南
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址