k8s:安装 Helm 私有仓库ChartMuseum、helm-push插件并上传、安装Zookeeper

ChartMuseum 是 Kubernetes 生态中用于存储、管理和发布 Helm Charts 的开源系统,主要用于扩展 Helm 包管理器的功能
核心功能

‌集中存储‌:提供中央化仓库存储Charts,支持版本管理和权限控制。 ‌

‌跨集群部署‌:支持多集群环境下共享Charts,简化部署流程。 ‌

‌离线部署‌:适配无网络环境,可将Charts存储在本地或局域网内。 ‌

‌HTTP接口‌:通过HTTP协议提供服务,用户可通过Helm客户端上传、下载及搜索Charts。 ‌

1.docker启动ChartMuseum

docker run -d \

--name chartmuseum \

-p 8080:8080 \

-v $(pwd)/charts:/charts \

-e STORAGE=local \

-e STORAGE_LOCAL_ROOTDIR=/charts \

chartmuseum/chartmuseum:latest

-v $(pwd)/charts:/charts:将当前目录下的 charts/ 文件夹作为存储路径。

1.1给charts文件夹权限

chmod -R 777 /app/KubeSphere/charts

2.添加私有仓库到 Helm 客户端

在你的 Helm 客户端机器上执行:

helm repo add sinopsrepo http://172.23.123.117:8080

helm repo list

3.安装 helm-push 插件

cm-push 是一个 Helm 插件,允许你将本地 .tgz 格式的 Helm Chart 包上传到 ChartMuseum 或兼容的 Helm 仓库服务器(如 Harbor、Nexus、Jfrog Artifactory 等)

下载地址

https://github.com/chartmuseum/helm-push/releases/download/v0.10.4/helm-push_0.10.4_linux_amd64.tar.gz

3.1解压

#tar -zxvf ++++helm-push_0.10.4_linux_amd64.tar.gz++++

3.2查看 Helm Home(插件安装路径)

HELM_PLUGINS_DIR=$(helm env | grep HELM_PLUGINS | cut -d '=' -f2 | tr -d '"')

root@master bin\]# echo $HELM_PLUGINS_DIR ![](https://i-blog.csdnimg.cn/direct/eb6eacdaaabf43f0b7e5aae93888c500.png) #### 3.3******创建插件目录****** mkdir -p "$HELM_PLUGINS_DIR/helm-push" 把下载好的 helm-push 放在"$HELM_PLUGINS_DIR/helm-push" 并解压 #tar -zxvf helm-push_0.10.4_linux_amd64.tar.gz 解压后包括/bin/helm-cm-push及plugin.yaml #### 3.4******赋予可执行权限****** chmod +x "$HELM_PLUGINS_DIR/helm-push/bin/helm-cm-push" #### 3.5******验证插件****** helm plugin list ![](https://i-blog.csdnimg.cn/direct/e9ebde3c7cdf48f6a407e0c33836d28d.png) ### 4.上传zookeeper到 Chart helm cm-push zookeeper-13.8.4.tgz sinopsrepo ![](https://i-blog.csdnimg.cn/direct/c00ab74f331144aa92d069df96ecbc08.png) ### ​​​​​​​5.******查看私有仓库的组件****** helm repo update(如果不执行该行代码,会导致最新上传的chart看不到) helm search repo sinopsrepo ![](https://i-blog.csdnimg.cn/direct/439c078522e049debf8104a362b9b4b0.png) ### 6.私有仓库安装 Helm Chart helm repo update helm install zookeeper sinopsrepo/zookeeper --version 13.8.4 ### 7卸载 helm uninstall my-zookeeper ### 8.参数详解 #### ⚙️ 通用设置 | 参数 | 环境变量 | 含义 | |----------------------------|--------------------------|------------------------------------------------------| | `--access-token string` | `HELM_REPO_ACCESS_TOKEN` | 使用 Token 认证时提供访问令牌(例如 GitHub Personal Access Token)。 | | `-a, --app-version string` | - | 覆盖 Chart 中的 `appVersion` 字段。 | | `--auth-header string` | `HELM_REPO_AUTH_HEADER` | 自定义认证请求头字段名称。 | | `--ca-file string` | `HELM_REPO_CA_FILE` | 指定 CA 证书文件路径,用于验证 HTTPS 服务器。 | | `--cert-file string` | `HELM_REPO_CERT_FILE` | 客户端 SSL 证书文件路径(用于双向 TLS)。 | | `--check-helm-version` | - | 输出当前使用的 Helm 主版本号(2 或 3)。 | | `--context-path string` | `HELM_REPO_CONTEXT_PATH` | ChartMuseum 的上下文路径(如 `/charts`)。 | | `--debug` | - | 开启调试模式,显示更详细的日志信息。 | | `-d, --dependency-update` | - | 打包前更新依赖项(从 `requirements.yaml` 到 `charts/` 目录)。 | | `-f, --force` | - | 即使远程仓库已存在相同版本也强制推送。 | | `-h, --help` | - | 显示帮助信息。 | *** ** * ** *** #### 🏠 Helm 配置目录 | 参数 | 默认值 | 含义 | |-----------------|---------------|---------------------------------------| | `--home string` | `/root/.helm` | 设置 Helm 的配置根目录(可覆盖环境变量 `$HELM_HOME`)。 | *** ** * ** *** #### 🛡️ Tiller 设置(Helm 2 特有) > Helm 3 已移除 Tiller,以下参数主要用于兼容旧 Helm 2 行为。 | 参数 | 默认值 | 含义 | |-----------------------------------|---------------|------------------------| | `--host string` | - | Tiller 地址(若使用 Helm 2)。 | | `--tiller-namespace string` | `kube-system` | Tiller 所在命名空间。 | | `--tiller-connection-timeout int` | `300` 秒 | 连接 Tiller 的超时时间。 | *** ** * ** *** #### 🔐 HTTPS 和认证相关 | 参数 | 环境变量 | 含义 | |-------------------------|----------------------|---------------------------------------| | `--insecure` | `HELM_REPO_INSECURE` | 忽略 HTTPS 证书校验(适用于自签名证书)。 | | `--key-file string` | `HELM_REPO_KEY_FILE` | 客户端 SSL 密钥文件路径(用于双向 TLS)。 | | `--keyring string` | - | GPG 公钥环路径(默认:`~/.gnupg/pubring.gpg`)。 | | `-p, --password string` | `HELM_REPO_PASSWORD` | HTTP Basic Auth 密码。 | | `-u, --username string` | `HELM_REPO_USERNAME` | HTTP Basic Auth 用户名。 | *** ** * ** *** #### 🕒 超时控制 | 参数 | 默认值 | 含义 | |---------------------|--------|----------------------------| | `-t, --timeout int` | `30` 秒 | 等待 ChartMuseum 响应的最大时间(秒)。 | *** ** * ** *** #### 📦 Chart 元数据覆盖 | 参数 | 含义 | |------------------------|------------------------------| | `-v, --version string` | 覆盖 Chart 的版本号(`version` 字段)。 |

相关推荐
yunson_Liu3 个月前
helm账号密码加密
helm
云上艺旅3 个月前
K8S学习之基础六十二:helm部署memcached服务
学习·kubernetes·helm·memcached·pod
qq_413691353 个月前
CI/CD(六) helm部署ingress-nginx(阿里云)
nginx·阿里云·ci/cd·helm·ingress-nginx
行者Sun19894 个月前
【K8s】专题十六(3):Kubernetes 包管理工具之 Helm 语法
云原生·容器·kubernetes·helm
行者Sun19895 个月前
【K8s】专题十六(2):Kubernetes 包管理工具之 Helm 使用
云原生·容器·kubernetes·helm
AliCloudROS5 个月前
阿里云ACK+GitLab企业级部署实战教程
k8s·gitlab·helm·ack·计算巢
Hi202402176 个月前
KVM创建ubuntu20.04虚机,部署K8S,再克隆出二份,做为Worker节点加入集群,通过Helm创建2个Pod,让它们之间通过域名互访
云原生·容器·kubernetes·helm·kvm
让生命变得有价值8 个月前
使用 helm 部署 gitlab
gitlab·helm
BinTools图尔兹8 个月前
CQ社区版 v2024.10 | 支持k8s、helm部署!
数据库·安全·k8s·helm·数据安全·数据库管理员