本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
SeaweedFS 是一个简单且高度可扩展的分布式文件系统。Bitnami 提供的该 Helm Chart 用于在 Kubernetes 集群中快速部署 SeaweedFS,支持生产级别的工作负载,包含经过精心设计的配置、安全增强和维护支持。
SeaweedFS 官方概述
商标说明:本软件包由 Bitnami 打包,提及的商标分属各自公司所有,使用不意味着附属或背书。
自 2025 年 8 月 28 日起,Bitnami 将升级其公共镜像目录,推出新的 Bitnami Secure Images 计划,提供精选的硬化工件。过渡期间的主要变更包括:
这些变更旨在通过推广软件供应链完整性最佳实践,提升所有 Bitnami 用户的安全态势。详情参见 Bitnami Secure Images 公告。
helm install my-release oci://registry-1.docker.io/bitnamicharts/seaweedfs
生产环境建议:试用 VMware Tanzu Application Catalog,Bitnami 目录的商业版。
使用发布名称 my-release 安装 Chart:
helm install my-release oci://REGISTRY_NAME/REPOSITORY_NAME/seaweedfs
注意:需替换占位符
REGISTRY_NAME和REPOSITORY_NAME。例如,Bitnami 官方仓库使用REGISTRY_NAME=registry-1.docker.io和REPOSITORY_NAME=bitnamicharts。
命令将以默认配置在 Kubernetes 集群中部署 SeaweedFS。参数 部分列出了安装时可配置的参数。
提示:使用
helm list查看所有发布。
Bitnami Chart 允许为所有容器设置资源请求和限制(通过 resources 参数)。生产环境必须设置资源请求,并根据实际需求调整。
可通过 resourcesPreset 参数自动应用预设资源配置(参考 bitnami/common Chart),但生产环境建议手动配置以适配具体需求。更多信息参见 Kubernetes 容器资源管理文档。
通过设置 master.metrics.enabled、volume.metrics.enabled、filer.metrics.enabled 或 s3.metrics.enabled 为 true,可启用 Prometheus 指标暴露。这将开放 SeaweedFS 原生 Prometheus 端口,并部署带有自动发现注解的 metrics 服务。
前提条件:集群中需已安装 Prometheus 或 Prometheus Operator。推荐安装 Bitnami Prometheus Helm Chart 或 Bitnami Kube Prometheus Helm Chart。
Prometheus Operator 集成:设置 *.metrics.serviceMonitor.enabled=true(如 master.metrics.serviceMonitor.enabled=true)可部署 ServiceMonitor 对象,需确保集群已安装 Prometheus Operator CRD。
Bitnami Chart 在首次启动时配置凭证,后续变更需手动操作:
SECRET_NAME、ADMIN_ACCESS_KEY_ID 等):kubectl create secret generic SECRET_NAME --from-literal=admin_access_key_id=ADMIN_ACCESS_KEY_ID --from-literal=admin_secret_access_key=ADMIN_SECRET_KEY_ID --from-literal=read_access_key_id=READ_ACCESS_KEY_ID --from-literal=read_secret_access_key=READ_SECRET_KEY_ID --dry-run -o yaml | kubectl apply -f -
如需 Filer Server 连接外部数据库(而非集群内安装),需禁用内置 MariaDB 并配置外部数据库参数:
mariadb.enabled=false externalDatabase.enabled=true externalDatabase.store=mariadb # 或 postgresql externalDatabase.host=myexternalhost externalDatabase.user=myuser externalDatabase.password=mypassword externalDatabase.database=mydatabase externalDatabase.port=3306
前置操作:需在外部数据库中手动创建 filemeta 表:
MariaDB:
USE DATABASE_NAME; CREATE TABLE IF NOT EXISTS filemeta ( `dirhash` BIGINT NOT NULL COMMENT 'directory 字段 MD5 哈希的前 64 位', `name` VARCHAR(766) NOT NULL COMMENT '目录或文件名', `directory` TEXT NOT NULL COMMENT '父目录完整路径', `meta` LONGBLOB, PRIMARY KEY (`dirhash`, `name`) ) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
PostgreSQL:
\c DATABASE_NAME; CREATE TABLE IF NOT EXISTS filemeta ( dirhash BIGINT, name VARCHAR(65535), directory VARCHAR(65535), meta bytea, PRIMARY KEY (dirhash, name) );
注意:替换
DATABASE_NAME为实际数据库名。
也可通过 Helm Chart 安装时的 K8s Job 自动创建表,需设置 externalDatabase.initDatabaseJob.enabled=true。
若集群已安装 Ingress 控制器(如 nginx-ingress-controller 或 contour),可通过 Ingress 暴露 SeaweedFS 服务。
master.ingress.enabled=true(其他组件如 S3、Filer 类似,通过 s3.ingress.enabled、filer.ingress.enabled 启用)master.ingress.hostname 设置域名master.ingress.tls 添加 TLS 证书master.ingress.extraHosts 和 master.ingress.extraTLS 配置额外主机和 TLS 规则启用安全设置需将 security.enabled=true 和 security.mTLS.enabled=true,支持:
证书管理:
security.mTLS.autoGenerated.enabled=true 和 security.mTLS.autoGenerated.engine=helmsecurity.mTLS.autoGenerated.enabled=true、security.mTLS.autoGenerated.engine=cert-manager,可通过 security.mTLS.autoGenerated.certManager.existingIssuer 指定现有 Issuer/ClusterIssuerS3 认证:
s3.auth.enabled=trues3.auth.existingSecret 指定 Secret 名称s3.auth.adminAccessKeyId、s3.auth.adminSecretAccessKey(管理员用户)和 s3.auth.readAccessKeyId、s3.auth.readSecretAccessKey(只读用户)设置凭证通过 extraEnvVars 添加自定义环境变量:
master: extraEnvVars: - name: LOG_LEVEL value: error
也可通过 ConfigMap 或 Secret 注入:
extraEnvVarsCM:指定包含环境变量的 ConfigMap 名称extraEnvVarsSecret:指定包含环境变量的 Secret 名称通过 sidecars 参数添加额外容器(如监控或日志采集器):
sidecars: - name: metrics-exporter image: your-exporter-image:latest imagePullPolicy: Always ports: - name: metrics containerPort: 9090
若 Sidecar 需暴露端口,通过 service.extraPorts 添加端口定义:
service: extraPorts: - name: exporter-port port: 9090 targetPort: 9090
通过 initContainers 参数添加初始化容器:
initContainers: - name: init-task image: your-init-image:latest imagePullPolicy: Always command: ["sh", "-c", "echo 'Initializing...'"]
通过 affinity 参数配置自定义亲和性规则,或使用预设策略(参考 bitnami/common Chart):
podAffinityPreset:Pod 亲和性预设podAntiAffinityPreset:Pod 反亲和性预设nodeAffinityPreset:节点亲和性预设使用 Velero 备份和恢复持久化卷,参考 Bitnami 备份恢复指南。
Bitnami SeaweedFS 镜像将数据和配置存储在容器的 /bitnami 路径,通过 Persistent Volume Claims 实现数据持久化。持久化相关问题排查参考 Bitnami 持久化卷故障排除指南。
| 参数名 | 描述 | 默认值 |
|---|---|---|
global.imageRegistry | 全局 Docker 镜像仓库 | "" |
global.imagePullSecrets | 全局镜像拉取密钥数组 | [] |
global.defaultStorageClass | 持久化卷全局默认 StorageClass | "" |
global.security.allowInsecureImages | 允许跳过镜像验证 | false |
global.compatibility.openshift.adaptSecurityContext | 适配 OpenShift restricted-v2 SCC 的安全上下文(auto/force/disabled) | auto |
| 参数名 | 描述 | 默认值 |
|---|---|---|
kubeVersion | 覆盖 Kubernetes 版本 | "" |
nameOverride | 部分覆盖资源名称前缀 | "" |
fullnameOverride | 完全覆盖资源全名 | "" |
namespaceOverride | 覆盖命名空间 | "" |
commonLabels | 所有资源添加的标签 | {} |
commonAnnotations | 所有资源添加的注解 | {} |
clusterDomain | Kubernetes 集群域名 | cluster.local |
extraDeploy | 额外部署的 Kubernetes 对象数组 | [] |
diagnosticMode.enabled | 启用诊断模式(禁用探针,覆盖命令) | false |
diagnosticMode.command | 诊断模式下覆盖所有容器的命令 | ["sleep"] |
diagnosticMode.args | 诊断模式下覆盖所有容器的参数 | ["infinity"] |
image.registry | SeaweedFS 镜像仓库 | REGISTRY_NAME |
image.repository | SeaweedFS 镜像名称 | REPOSITORY_NAME/seaweedfs |
image.digest | 镜像摘要(覆盖标签,推荐不可变标签) | "" |
image.pullPolicy | 镜像拉取策略 | IfNotPresent |
image.pullSecrets | 镜像拉取密钥 | [] |
image.debug | 启用镜像调试模式 | false |
security.enabled | 启用安全设置 | false |
security.corsAllowedOrigins | CORS 允许的源 | [] |
注:完整参数列表请参见 Bitnami SeaweedFS Chart 文档。
docker.io/bitnamilegacy,不再更新,生产环境建议迁移至 Bitnami Secure Images。免费版仅支持 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 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429