专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏

bitnami/charts-syncer Docker 镜像 - 轩辕镜像

charts-syncer
bitnami/charts-syncer
Bitnami charts-syncer容器镜像,用于便捷部署和高效同步管理Helm Charts。
0 次下载activebitnami镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

charts-syncer 技术文档

概述与主要用途

charts-syncer 是一款用于在 Helm 图表仓库之间同步 Helm 图表包及关联容器镜像的工具。它支持多种类型的仓库(如 HELM、CHARTMUSEUM、HARBOR、OCI、LOCAL),能够灵活适配不同的环境需求,包括在线同步和离线(断开连接的环境)同步场景。作为 Bitnami 容器镜像,charts-syncer 旨在简化跨仓库的图表迁移与维护流程。

核心功能与特性

  • 多类型仓库支持:兼容 HELM、CHARTMUSEUM、HARBOR、OCI 和 LOCAL 等多种类型的源和目标仓库。
  • 选择性同步:支持按日期、仅最新版本等条件筛选同步的图表。
  • 容器镜像同步:可配置同步图表所引用的容器镜像(需图表包含 .relok8s-images.yaml 文件)。
  • *离线同步能力:支持两步迁移模式,适用于源和目标仓库无法同时访问的断开连接环境。
  • 依赖自动更新:自动更新图表依赖文件(如 requirements.yaml、Chart.yaml 等),确保依赖从目标仓库拉取。
  • 配置灵活性:通过配置文件或环境变量设置仓库认证信息,支持自定义容器镜像仓库路径。
  • *文档自动更新:同步时自动更新图表 README.md 中的仓库地址和部署命令。

使用场景与适用范围*

  • 多仓库同步:保持开发、测试、生产环境的 Helm 图表仓库同步。
  • 图表迁移:将图表从公共仓库(如 Bitnami)迁移到私有仓库(如 Harbor OCI 仓库)。
  • *离线环境部署:在无直接网络连接的环境中,通过离线包方式同步图表及镜像。
  • 依赖统一管理:确保图表依赖的容器镜像指向内部私有镜像仓库,增强安全性与可控性。

使用方法与配置说明

前提条件
  • 图表需使用标准格式定义镜像信息(values.yaml 文件中包含 image.registry、image.repository 和 image.tag字段)*。
  • 若需同步容器镜像,源图表需包含 .relok8s-images.yaml 文件(详见 asset-relocation-tool-for-kubernetes)。
  • 使用 OCI 作为源仓库时,需指定图表列表或配置图表索引文件。
基本使用
同步所有 Helm*图表**```console

$ charts-syncer sync --config config.yaml


#### *从指定日期同步图表* ```console
$ charts-syncer sync --config config.yaml --from-date 2020-05-15
仅同步每个图表的最新版本* ```console

$ charts-syncer sync --config config.yaml --latest-version-only*



### *高级使用***####*同步图表及关联容器镜像*默认仅同步图表包*,需在配置文件中启用容器镜像同步:

```yaml
relocateContainerImages:* true  # 启用容器镜像同步
source:
  repo:* ...
target:* ...* ```

> **注意*:需确保源图表包含 `.relok8s-images.yaml` 文件,用于指定镜像位置信息。

####* 断开环境中的图表与镜像同步*适用于源和目标仓库无法同时访问的场景,支持两步离线迁移:

1. **导出阶段**:从源仓库下载图表及镜像并保存到本地目录。
2. **导入阶段**:将本地目录中的图表及镜像上传到目标仓库*。

详细步骤参见 离线同步文档。


### 配置说明*####*配置文件结构*配置文件需指定源仓库、目标仓库、同步规则等信息。完整配置项及说明见 charts-syncer.yaml。

**示例配置文件**:

```yaml
# 示例配置文件
relocateContainerImages: false  # 是否同步容器镜像
source:
  repo:
    kind: HELM  # 源仓库类型:HELM/CHARTMUSEUM/HARBOR/OCI/LOCAL
    url: [***]  # 源仓库URL
    # 源仓库认证信息(可选)
    # auth:
    #   username: "SOURCE_USER"
    #   password: "SOURCE_PWD"
  # 源容器镜像仓库认证(可选)
  # containers:
  #   auth:
  #     registry: "docker.io"
  #     username: "IMAGE_USER"
  #     password: "IMAGE_PWD"
target:
  repoName: my-private-repo  # 目标仓库名称(用于README更新)
  containerRegistry: registry.example.com  # 目标容器镜像仓库地址
  containerRepository: charts  # 目标容器镜像仓库路径(可选)
  repo:
    kind: OCI  # 目标仓库类型
    url: [***]  # 目标仓库URL
    # 目标仓库认证信息(可选)
    # auth:
    #   username: "TARGET_USER"
    #   password: "TARGET_PWD"
# 需同步的图表列表(OCI源仓库必填,其他类型可选,支持自动发现)
charts:
  - redis
  - mariadb
# 需跳过的图表列表(与charts字段互斥)
# skipCharts:
#   - wordpress
仓库类型示例Harbor 仓库示例Harbor 图表仓库 URL 格式为 [***]{HARBOR_DOMAIN}/chartrepo/${HARBOR_PROJECT}:
yaml
target:
  repo:
    kind: HARBOR
    url: [***]

OCI 仓库示例适用于 Harbor 2.0+ OCI 后端或 AWS ECR 等 OCI 兼容仓库:

yaml
target:
  repo:
    kind: OCI
    url: [***]  # 支持子路径
  # OCI仓库认证(如Harbor机器人账号)
  repo:
    auth:
      username: "robot$my-project+sync-user"
      password: "robot-token"

本地目录示例将图表同步到本地目录,用于离线迁移:

yaml
target:
  repo:
    kind: LOCAL
    path: ./local-charts  # 本地目录路径
环境变量配置认证信息可通过环境变量设置仓库认证,优先级高于配置文件:
环境变量说明
SOURCE_REPO_AUTH_USERNAME源仓库用户名
SOURCE_REPO_AUTH_PASSWORD源仓库密码
TARGET_REPO_AUTH_USERNAME目标仓库用户名
TARGET_REPO_AUTH_PASSWORD目标仓库密码
SOURCE_CONTAINERS_AUTH_REGISTRY源容器镜像仓库地址
SOURCE_CONTAINERS_AUTH_USERNAME源容器镜像仓库用户名
SOURCE_CONTAINERS_AUTH_PASSWORD源容器镜像仓库密码
TARGET_CONTAINERS_AUTH_USERNAME目标容器镜像仓库用户名
TARGET_CONTAINERS_AUTH_PASSWORD目标容器镜像仓库密码
仓库兼容性矩阵
源仓库类型目标仓库类型支持情况
HELMHELM❌
HELMCHARTMUSEUM✅
HELMHARBOR✅
HELMOCI✅
HELMLOCAL✅
CHARTMUSEUMHELM❌
CHARTMUSEUMCHARTMUSEUM✅
CHARTMUSEUMHARBOR✅
CHARTMUSEUMOCI✅
CHARTMUSEUMLOCAL✅
HARBORHELM❌
HARBORCHARTMUSEUM✅
HARBORHARBOR✅
HARBOROCI✅
HARBORLOCAL✅
OCIHELM❌
OCICHARTMUSEUM✅
OCIHARBOR✅
OCIOCI✅
OCILOCAL✅
LOCALHELM❌
LOCALCHARTMUSEUM✅
LOCALHARBOR✅
LOCALOCI✅
LOCALLOCAL✅

Docker 部署方案示例

基本 Docker 运行命令
console
# 拉取 charts-syncer 镜像(假设镜像名称为 bitnami/charts-syncer)
docker pull bitnami/charts-syncer:latest

# 运行同步(挂载本地配置文件)
docker run --rm -v $(pwd)/config.yaml:/config.yaml bitnami/charts-syncer sync --config /config.yaml
带环境变量的 Docker 命令(认证信息通过环境变量传入)
console
docker run --rm \
  -v $(pwd)/config.yaml:/config.yaml \
  -e SOURCE_REPO_AUTH_USERNAME=source-user \
  -e SOURCE_REPO_AUTH_PASSWORD=source-pass \
  -e TARGET_REPO_AUTH_USERNAME=target-user \
  -e TARGET_REPO_AUTH_PASSWORD=target-pass \
  bitnami/charts-syncer sync --config /config.yaml

图表同步过程中的变更

同步时工具会自动修改图表文件以适配目标环境,主要变更如下:

更新 values.yaml 及 values-production.yaml

修改镜像仓库地址,示例:

diff
# values.yaml 变更示例
image:
-  registry: docker.io
-  repository: bitnami/ghost
+  registry: registry.example.com
+  repository: charts/ghost
  tag: 3.22.2-debian-10-r0
更新依赖文件
  • Helm v2:更新 requirements.yaml 和 requirements.lock 中的仓库地址。
  • Helm v3:更新 Chart.yaml 和 Chart.lock 中的仓库地址。

示例(Helm v3 的 Chart.lock):

diff
# Chart.lock 变更示例
dependencies:
- name: zookeeper
-  repository: [***]
+  repository: [***]
  version: 5.21.9
更新 README.md

修改文档中的仓库添加命令和部署命令,示例:

diff
# README.md 变更示例
 ## TL;DR;

 ```console
-$ helm repo add bitnami [***]
-$ helm install my-release bitnami/ghost
+$ helm repo add my-private-repo [***]
+$ helm install my-release my-private-repo/ghost


## 在 Kubernetes 中部署

可通过 Kubernetes CronJob 实现定期自动同步。示例 CronJob 配置(详情参见 Kubernetes 部署指南):

```yaml
apiVersion: batch/v1
kind: CronJob
metadata:
  name: charts-syncer
spec:
  schedule: "0 3 * * *"  # 每天凌晨3点执行
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: charts-syncer
            image: bitnami/charts-syncer:latest
            command: ["sync", "--config", "/config/config.yaml"]
            volumeMounts:
            - name: config-volume
              mountPath: /config
            env:
            - name: SOURCE_REPO_AUTH_USERNAME
              valueFrom:
                secretKeyRef:
                  name: repo-credentials
                  key: source-username
            - name: SOURCE_REPO_AUTH_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: repo-credentials
                  key: source-password
            # 其他环境变量...
          volumes:
          - name: config-volume
            configMap:
              name: charts-syncer-config
          restartPolicy: OnFailure

构建方法

如需自行构建工具,参见 开发者文档。

许可证

Copyright © 2024 Broadcom. 术语“Broadcom”指 Broadcom Inc. 及其子公司。

本工具基于 Apache License 2.0 许可证开源。详情参见 LICENSE。

查看更多 charts-syncer 相关镜像 →
bitnamicharts/charts-index logo
bitnamicharts/charts-index
by VMware
认证
暂无描述
1M+ pulls
上次更新:14 天前
bitnamicharts/redis logo
bitnamicharts/redis
by VMware
认证
Bitnami提供的Redis Helm chart,用于在Kubernetes环境中快速部署和管理Redis服务。
3750M+ pulls
上次更新:24 天前
bitnamicharts/common logo
bitnamicharts/common
by VMware
认证
Bitnami Common Library Chart是一个Helm库图表,用于集中Bitnami各图表间的通用逻辑,提供丰富的模板助手以简化Helm图表开发,支持亲和性配置、API版本适配、资源管理等功能。
10M+ pulls
上次更新:5 个月前
bitnamicharts/postgresql logo
bitnamicharts/postgresql
by VMware
认证
Bitnami的PostgreSQL Helm chart,用于在Kubernetes环境中便捷部署和管理PostgreSQL数据库,支持灵活配置与可靠运行。
510M+ pulls
上次更新:19 天前
bitnamicharts/rabbitmq logo
bitnamicharts/rabbitmq
by VMware
认证
Bitnami的RabbitMQ Helm chart,用于在Kubernetes环境中便捷、可靠地部署和管理RabbitMQ消息队列。
310M+ pulls
上次更新:4 个月前
bitnamicharts/kafka logo
bitnamicharts/kafka
by VMware
认证
Bitnami为Apache Kafka提供的Helm Chart是一款预配置的Kubernetes包管理工具,旨在简化分布式流处理平台Apache Kafka在Kubernetes集群中的部署、配置与全生命周期运维管理,集成了高可用性集群设置、安全认证机制、Prometheus监控指标及自动伸缩策略等核心功能,帮助用户无需手动处理复杂的集群参数配置,即可快速搭建稳定、可扩展且符合生产级标准的Kafka服务,适用于从开发测试到大规模生产环境的各类场景。
410M+ pulls
上次更新:4 个月前

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
bitnami/charts-syncer
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
免费获取在线技术支持请 提交工单,官方QQ群:13763429 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
免费获取在线技术支持请提交工单,官方QQ群: 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.
轩辕镜像 官方专业版 Logo
轩辕镜像轩辕镜像官方专业版
首页个人中心搜索镜像
交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429