轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
bitnamicharts/chainloop
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

chainloop Docker 镜像下载 - 轩辕镜像

chainloop 镜像详细信息和使用指南

chainloop 镜像标签列表和版本信息

chainloop 镜像拉取命令和加速下载

chainloop 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

chainloop
bitnamicharts/chainloop

chainloop 镜像详细信息

chainloop 镜像标签列表

chainloop 镜像使用说明

chainloop 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

Bitnami提供的Helm chart,用于在Kubernetes环境中部署Chainloop。
0 次下载activebitnamicharts镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

chainloop 镜像详细说明

chainloop 使用指南

chainloop 配置说明

chainloop 官方文档

Chainloop 镜像文档

镜像概述和主要用途

Chainloop 是一个开源的软件供应链控制平面,作为元数据和工件的单一事实来源,以及声明式证明过程。它提供了对软件供应链的全面控制,确保供应链的透明度、安全性和可追溯性。

Chainloop 官方网站

商标说明:本软件列表由 Bitnami 打包。产品中提及的各个商标分别归各自公司所有,使用这些商标并不意味着任何关联或认可。

核心功能和特性

  • 软件供应链控制平面:统一管理软件供应链的各个环节
  • 元数据和工件管理:作为单一事实来源存储和管理所有相关元数据和工件
  • 声明式证明过程:支持软件供应链的声明式证明和验证
  • 多密钥管理后端:支持 Hashicorp Vault、AWS Secrets Manager、GCP Secret Manager 和 Azure KeyVault
  • 灵活的部署模式:提供标准模式(生产环境)和开发模式(快速试用)
  • 外部数据库支持:可连接外部 PostgreSQL 数据库或使用内置实例
  • 自定义域名和 TLS:支持配置自定义域名和 TLS 加密
  • Prometheus 监控:暴露 Prometheus 兼容的指标端点
  • AirGap 环境支持:支持在隔离环境中部署

使用场景和适用范围

  • 开发环境:通过开发模式快速部署完整的 Chainloop 环境,包含预配置的 Vault 和身份验证
  • 生产环境:通过标准模式部署,连接外部安全的密钥管理服务和数据库
  • 企业级软件供应链:为企业提供安全、透明、可追溯的软件供应链管理
  • 合规性要求高的环境:满足严格的合规性和审计要求
  • 隔离网络环境:支持在无互联网连接的 AirGap 环境中部署和使用

快速开始 (TL;DR)

helm install my-release oci://registry-1.docker.io/bitnamicharts/chainloop

如需在生产环境中使用 Chainloop,建议尝试 VMware Tanzu Application Catalog,这是 Bitnami 目录的商业版本。

安装指南

前提条件

  • Kubernetes 1.23+
  • Helm 3.2.0+
  • 底层基础设施支持 PV 供应器(如果启用内置 PostgreSQL)

已验证兼容以下 Ingress 控制器,其他控制器可能工作也可能不工作:

  • Nginx Ingress Controller
  • Traefik

安装图表

此图表提供两种部署模式:标准模式 和 开发模式。

标准模式 (默认)

!部署架构

默认部署模式依赖预先可用的外部依赖项。

此模式下的 Helm Chart 包括:

  • Chainloop Controlplane
  • Chainloop Artifact proxy
  • 默认启用的 PostgreSQL 依赖项

安装过程中,您需要提供:

  • Open ID Connect 身份提供程序 (IDp) 设置,即 Auth0 设置
  • 密钥存储后端的连接设置,可以是 Hashicorp Vault 或 AWS Secrets Manager
  • 用于 Controlplane 到 CAS 身份验证的 ECDSA (ES512) 密钥对

创建 ECDSA 密钥对的说明可在此处找到。

标准模式安装示例

注意:我们不建议以明文形式传递或存储敏感数据。对于生产环境,请考虑使用 Sops、Helm Secrets 或 Sealed Secrets 等工具对覆盖值进行加密。

部署 Chainloop,配置为使用捆绑的 PostgreSQL、外部 OIDC IDp 和 Vault 实例。

helm install [RELEASE_NAME] oci://REGISTRY_NAME/REPOSITORY_NAME/chainloop \
    # Open ID Connect (OIDC)
    --set controlplane.auth.oidc.url=[OIDC URL] \
    --set controlplane.auth.oidc.clientID=[clientID] \
    --set controlplane.auth.oidc.clientSecret=[clientSecret] \
    # 密钥后端
    --set secretsBackend.vault.address="https://[vault address]:8200" \
    --set secretsBackend.vault.token=[token] \
    # 服务器身份验证密钥对
    --set casJWTPrivateKey="$(cat private.ec.key)" \
    --set casJWTPublicKey="$(cat public.pem)"

使用 AWS Secrets Manager 代替 Vault 进行部署:

helm install [RELEASE_NAME] oci://REGISTRY_NAME/REPOSITORY_NAME/chainloop \
    # Open ID Connect (OIDC)
    # ...
    # 密钥后端
    --set secretsBackend.backend=awsSecretManager \
    --set secretsBackend.awsSecretManager.accessKey=[AWS ACCESS KEY ID] \
    --set secretsBackend.awsSecretManager.secretKey=[AWS SECRET KEY] \
    --set secretsBackend.awsSecretManager.region=[AWS region]\
    # 服务器身份验证密钥对
    # ...

使用 GCP Secret Manager:

helm install [RELEASE_NAME] oci://REGISTRY_NAME/REPOSITORY_NAME/chainloop \
    # Open ID Connect (OIDC)
    # ...
    # 密钥后端
    --set secretsBackend.backend=gcpSecretManager \
    --set secretsBackend.gcpSecretManager.projectId=[GCP Project ID] \
    --set secretsBackend.gcpSecretManager.serviceAccountKey=[GCP Auth KEY] \
    # 服务器身份验证密钥对
    # ...

使用 Azure KeyVault:

helm install [RELEASE_NAME] oci://REGISTRY_NAME/REPOSITORY_NAME/chainloop \
    # Open ID Connect (OIDC)
    # ...
    # 密钥后端
    --set secretsBackend.backend=azureKeyVault \
    --set secretsBackend.azureKeyVault.tenantID=[AD tenant ID] \
    --set secretsBackend.azureKeyVault.clientID=[Service Principal ID] \
    --set secretsBackend.azureKeyVault.clientSecret=[Service Principal secret] \
    --set secretsBackend.azureKeyVault.vaultURI=[Azure KeyVault URI]
    # 服务器身份验证密钥对
    # ...

连接到外部 PostgreSQL 数据库:

helm install [RELEASE_NAME] oci://REGISTRY_NAME/REPOSITORY_NAME/chainloop \
    # Open ID Connect (OIDC)
    # ...
    # 密钥后端
    # ...
    # 服务器身份验证密钥对
    # ...
    # 外部数据库设置
    --set postgresql.enabled=false \
    --set controlplane.externalDatabase.host=[DB_HOST] \
    --set controlplane.externalDatabase.user=[DB_USER] \
    --set controlplane.externalDatabase.password=[DB_PASSWORD] \
    --set controlplane.externalDatabase.database=[DB_NAME]

开发模式

为了提供一种简单的方式来试用 Chainloop,此 Helm Chart 提供了一个可选的开发模式,可以通过标志 development=true 启用。

重要:请勿在生产环境中使用此模式

!开发环境部署

此模式下的 Helm Chart 包括:

  • Chainloop Controlplane
  • Chainloop Artifact proxy
  • 默认启用的 PostgreSQL 依赖项
  • 预先配置的 Hashicorp Vault 实例,以开发模式运行(未密封、内存中、不安全)
  • 预先配置的 Dex OIDC 实例

图表上的预设用户配置包括两个用户,信息如下:

用户名: ***
密码: password

用户名: ***
密码: password

完整的 OIDC 配置可以在 values.yaml 文件中找到。

警告:不要在生产环境中使用此模式,生产环境应使用标准模式。

开发模式安装示例

利用内置的 Vault 和 PostgreSQL 实例进行部署:

helm install [RELEASE_NAME] oci://REGISTRY_NAME/REPOSITORY_NAME/chainloop --set development=true

配置说明

全局参数

名称描述默认值
global.imageRegistry全局 Docker 镜像仓库""
global.imagePullSecrets全局 Docker 仓库密钥名称数组[]
global.security.allowInsecureImages允许跳过镜像验证false
global.compatibility.openshift.adaptSecurityContext调整部署的 securityContext 部分,使其与 Openshift restricted-v2 SCC 兼容:删除 runAsUser、runAsGroup 和 fsGroup,让平台使用其允许的默认 ID。可能的值:auto(如果检测到运行的集群是 Openshift,则应用),force(始终执行适配),disabled(不执行适配)auto
development部署预先配置的 Chainloop,仅用于开发。包括开发模式的 Vault 实例和预先配置的身份验证证书和密码true

通用参数

名称描述默认值
kubeVersion覆盖 Kubernetes 版本""
apiVersions覆盖 .Capabilities 报告的 Kubernetes API 版本[]
nameOverride部分覆盖 common.names.name 的字符串""
fullnameOverride完全覆盖 common.names.fullname 的字符串""
namespaceOverride完全覆盖 common.names.namespace 的字符串""
commonAnnotations要添加到所有部署对象的注解{}
commonLabels要添加到所有部署对象的标签{}
extraDeploy要与发布一起部署的额外对象数组[]
rbac.create指定是否应创建 RBAC 资源false
rbac.rules要设置的自定义 RBAC 规则[]

密钥后端参数

名称描述默认值
secretsBackend.backend密钥后端类型("vault"、"awsSecretManager"、"gcpSecretManager" 或 "azureKeyVault")vault
secretsBackend.secretPrefix将添加到存储后端中所有密钥的前缀chainloop
secretsBackend.vault.addressVault 地址""
secretsBackend.vault.tokenVault 身份验证令牌""
secretsBackend.awsSecretManager.accessKeyAWS 访问密钥 ID""
secretsBackend.awsSecretManager.secretKeyAWS 密钥""
secretsBackend.awsSecretManager.regionAWS Secrets Manager 区域""
secretsBackend.gcpSecretManager.projectIdGCP 项目 ID""
secretsBackend.gcpSecretManager.serviceAccountKeyGCP 身份验证密钥""
secretsBackend.azureKeyVault.tenantIDActive Directory 租户 ID""
secretsBackend.azureKeyVault.clientID已注册应用程序/服务主体客户端 ID""
secretsBackend.azureKeyVault.clientSecret服务主体客户端密钥""
secretsBackend.azureKeyVault.vaultURIAzure Key Vault URL""

高级使用指南

生成 ECDSA 密钥对

ECDSA 密钥对是控制平面和 Artifact CAS 之间执行身份验证所必需的。

您可以通过运行以下命令生成私钥和公钥:

# 私钥 (private.ec.key)
openssl ecparam -name secp521r1 -genkey -noout -out private.ec.key
# 公钥 (public.pem)
openssl ec -in private.ec.key -pubout -out public.pem

然后,您可以在自定义的 values.yaml 文件覆盖中提供它们:

casJWTPrivateKey: |-
  -----BEGIN EC PRIVATE KEY-----
  REDACTED
  -----END EC PRIVATE KEY-----
casJWTPublicKey: |
  -----BEGIN PUBLIC KEY-----
  REDACTED
  -----END PUBLIC KEY-----

或者如前所示,在 Helm 安装/升级期间将它们作为命令式输入提供:--set casJWTPrivateKey="$(cat private.ec.key)" --set casJWTPublicKey="$(cat public.pem)"

CAS 上传速度慢,该怎么办?

Chainloop 使用 gRPC 流来执行工件上传。这种方法在高延迟场景下可能会非常慢。#375

要提高上传速度,您需要增加 http2 流控制缓冲区。这可以通过在 ingress 资源中设置以下注解在 NGINX 中完成:

# 通过添加 http2 控制流使用的客户端缓冲来提高上传速度
nginx.ingress.kubernetes.io/client-body-buffer-size: "3M"

注意:对于其他反向代理,您需要找到等效的配置。

配置自定义域名和 TLS

Chainloop 使用三个端点,因此我们需要为每个端点启用 ingress 资源。

以下是 values.yaml 覆盖的示例:

controlplane:
  ingress:
    enabled: true
    hostname: cp.chainloop.dev

  ingressAPI:
    enabled: true
    hostname: api.cp.chainloop.dev

cas:
  ingressAPI:
    enabled: true
    hostname: api.cas.chainloop.dev

使用以下组件的完整设置:

  • NGINX 作为 ingress 控制器
  • cert-manager 作为 TLS 提供程序

配置如下:

controlplane:
  ingress:
    enabled: true
    tls: true
    ingressClassName: nginx
    hostname: cp.chainloop.dev
    annotations:
      # 这取决于您配置的颁发者
      cert-manager.io/cluster-issuer: "letsencrypt-prod"

  ingressAPI:
    enabled: true
    tls: true
    ingressClassName: nginx
    hostname: api.cp.chainloop.dev
    annotations:
      nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
      cert-manager.io/cluster-issuer: "letsencrypt-prod"

cas:
  ingressAPI:
    enabled: true
    tls: true
    ingressClassName: nginx
    hostname: api.cas.chainloop.dev
    annotations:
      nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
      cert-manager.io/cluster-issuer: "letsencrypt-prod"
      # 限制通过代理的文件大小
      # 0 表示不检查请求大小,这样我们不会收到 413 错误。
      # 现在我们将限制设置为 100MB 文件
      # 尽管我们以 1MB 的块发送数据,但此大小是指在流连接中发送的所有数据
      nginx.ingress.kubernetes.io/proxy-body-size: "100m"

请记住,设置域名后,确保使用指向您实例的 CLI 而不是默认值。

连接外部 PostgreSQL 数据库

# 禁用内置数据库
postgresql:
  enabled: false

# 提供外部连接
controlplane:
  externalDatabase:
    host: 1.2.3.4
    port: 5432
    user: chainloop
    password: [REDACTED]
    database: chainloop-controlplane-prod

或者,如果您使用 Google Cloud SQL 并在 Google Kubernetes Engine 中运行 Chainloop,您可以通过 代理 连接:

通过以下方式可以在此图表中轻松启用此方法:

# 禁用内置数据库
postgresql:
  enabled: false

# 提供外部连接
controlplane:
  sqlProxy:
    # 注入代理 sidecar
    enabled: true
    ## @param controlplane.sqlProxy.connectionName Google Cloud SQL 连接名称
    connectionName: "my-sql-instance"
  # 然后您需要将数据库设置配置为使用代理 IP 地址
  externalDatabase:
    host: [proxy-side
查看更多 chainloop 相关镜像 →
bitnami/chainloop-control-plane logo
bitnami/chainloop-control-plane
by VMware
认证
Bitnami Secure Image for chainloop-control-plane是chainloop-control-plane的安全镜像,目前Docker Hub不再免费提供,需通过商业订阅获取Debian和Photon基础OS格式的OCI制品,具备高安全性、合规支持及供应链安全特性。
10K+ pulls
上次更新:2 个月前
bitnami/chainloop-artifact-cas logo
bitnami/chainloop-artifact-cas
by VMware
认证
chainloop-artifact-cas的Bitnami安全镜像,目前不再通过Docker Hub免费提供,可通过Bitnami商业订阅获取,提供Debian和Photon基础OS格式的OCI制品。
50K+ pulls
上次更新:2 个月前
bitnami/chainloop-control-plane-migrations logo
bitnami/chainloop-control-plane-migrations
by VMware
认证
Bitnami chainloop-control-plane-migrations安全镜像,提供Debian和Photon基础OS格式,需通过商业订阅获取,具备高安全性、合规性及供应链安全支持。
50K+ pulls
上次更新:2 个月前

常见问题

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

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

轩辕镜像免费版与专业版有分别支持哪些镜像?

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

流量耗尽错误提示

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

410 错误问题

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

manifest unknown 错误

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

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

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

查看全部问题→

轩辕镜像下载加速使用手册

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

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.