> 「本文同步首发于个人博客 yahoon.github.io,原创内容,转载请注明出处」
Helm Chart的离线安装(tar.gz文件)
最近在学习helm, 作为运维,以前对这个K8s的应用部署接触的不多, 这几天正好实践操作一下。
使用官方给的podinfo 这个chart, 具体步骤如下:
Step 1: 拉取Chart
chart 包本身就是一个tar.gz 的包
首先说明 chart 包的发布有两个渠道
- HTTP repo (比如artifact hub)
- OCI地址(
oci://ghcr.io/...,也就是类似于docker hub)是Chart作者额外发布到OCI registry的
具体发布到哪里,要看作者的意愿
学习 helm pull 命令
❯ helm pull --help
Retrieve a package from a package repository, and download it locally.
Usage: helm pull [chart URL | repo/chartname] [...] [flags]
拉取chart 到本地也可以有两种方式 (具体看chart 在哪里):
- OCI registry拉取
这个oci// 地址一般由作者提供
helm pull oci://ghcr.io/stefanprodan/charts/podinfo --version 6.11.2
- HTTP repo拉取
首先获得 chart的名字和repo
❯ helm search hub podinfo --list-repo-url
URL CHART VERSION APP VERSION DESCRIPTION REPO URL https://artifacthub.io/packages/helm/podinfo/po... 6.13.0 6.13.0 Podinfo Helm chart for Kubernetes https://stefanprodan.github.io/podinfo
https://artifacthub.io/packages/helm/flagger/po... 6.1.4 6.1.3 Flagger canary deployment demo application https://flagger.app
// 第一个URL是这个的网页(太长被截断了), 后面是REPO URL
// 问题: 这里看不到chart 名字
// 所以要查看完整信息
❯ helm search hub podinfo --list-repo-url -o yaml
- app_version: 6.13.0
description: Podinfo Helm chart for Kubernetes
repository:
name: podinfo
url: https://stefanprodan.github.io/podinfo // 这个是repo URL
url: https://artifacthub.io/packages/helm/podinfo/podinfo //这个是chart网页
version: 6.13.0
注意chart网页的 URL : 从里面拆解出chart的名字
https://artifacthub.io/packages/helm/podinfo/podinfo
↑ ↑
repo名 chart名
现在可以查看具体的chart 信息
❯ helm show chart podinfo --repo https://stefanprodan.github.io/podinfo
apiVersion: v1
appVersion: 6.13.0
description: Podinfo Helm chart for Kubernetes
home: https://github.com/stefanprodan/podinfo
kubeVersion: '>=1.23.0-0'
maintainers:
- email: stefanprodan@users.noreply.github.com
name: stefanprodan
name: podinfo
sources:
- https://github.com/stefanprodan/podinfo
version: 6.13.0
再来拉取
// pull the chart pkg file
❯ helm pull podinfo --repo https://stefanprodan.github.io/podinfo --version 6.13.0
// 本地有了文件
❯ ls
podinfo-6.13.0.tgz
可以解压tgz文件看里面的具体内容
Step 2: 本地安装 tar.gz
注意我将podinfo 这个chart 部署到k8s后的release名字叫 yahoon-podinfo2
# 直接用本地 .tgz 文件安装,不需要联网
❯ helm install yahoon-podinfo2 ./podinfo-6.13.0.tgz
NAME: yahoon-podinfo2
LAST DEPLOYED: Tue Jun 9 10:55:09 2026
NAMESPACE: default
STATUS: deployed
REVISION: 1
DESCRIPTION: Install complete
NOTES:
1. Get the application URL by running these commands:
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl -n default port-forward deploy/yahoon-podinfo2 8080:9898
❯ helm ls
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
yahoon-podinfo2 default 1 2026-06-09 10:55:09.61677018 +0800 CST deployed podinfo-6.13.0 6.13.0
❯ helm status yahoon-podinfo2
NAME: yahoon-podinfo2
LAST DEPLOYED: Tue Jun 9 10:55:09 2026
NAMESPACE: default
STATUS: deployed
REVISION: 1
DESCRIPTION: Install complete
RESOURCES:
==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
yahoon-podinfo2 ClusterIP 10.105.78.199 <none> 9898/TCP,9999/TCP 12m
==> v1/Deployment
NAME READY UP-TO-DATE AVAILABLE AGE
yahoon-podinfo2 1/1 1 1 12m
==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
yahoon-podinfo2-64bc985989-dzkzl 1/1 Running 0 9m26s
Step 3: 测试访问
在命令行运行以下命令(不要关闭)❯ kubectl -n default port-forward deploy/yahoon-podinfo2 8080:9898
在浏览器打开 http://127.0.0.1:8080

然后回到命令行退出之前的命令
Step4: 删除部署的release
❯ helm ls
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
yahoon-podinfo2 default 1 2026-06-09 10:55:09.61677018 +0800 CST deployed podinfo-6.13.0 6.13.0
❯ helm uninstall yahoon-podinfo2
> 「本文同步首发于个人博客 yahoon.github.io,原创内容,转载请注明出处」