
【免费下载链接】charts⚠️(OBSOLETE) Curated applications for Kubernetes项目地址https://gitcode.com/gh_mirrors/chart/charts点击查看免费下载导读Cloudserver 是 Scality 出品的开源 S3 兼容对象存储服务以前端 Amazon S3 协议、后端多云存储能力为核心可对接 Azure、Google 等多个云存储后端。本文以当前仓库 stable/cloudserver 这个 Helm Chart 为对象完整讲解如何在 Kubernetes 集群上安装、卸载并深度配置 Cloudserver包括 api 与 localdata 双组件架构、location constraints 存储后端配置、MongoDB/Redis 依赖、持久化、Ingress、HPA 自动伸缩等核心能力。读完后你将掌握通过helm install与--set/-f values.yaml定制生产级 Cloudserver 部署的完整技能并理解每个参数背后对应的模板实现逻辑。仓库归档提示本仓库中的 Charts 自 2020 年 11 月 13 日起不再更新Chart.yaml 中deprecated: true标记明确声明该 Chart 已废弃本文内容仅作技术学习与历史版本参考。一、Cloudserver 是什么根据 Chart 的元数据Chart.yaml与 README 说明Cloudserver 是一个开源的 Node.js 实现的 Amazon S3 协议服务器前端以 S3 兼容 API 对外提供服务appVersion为8.1.5一个多云存储网关后端存储能力可对接多个云包括 Azure、Google也支持本地文件存储file类型 location被 Helm 打包为云原生部署形态本 Chart 版本为1.0.7要求 Kubernetes 版本^1.8.0-0模板引擎为gotpl。从源码结构看templates 目录该 Chart 由两大业务组件与两个子 Chart 依赖构成形成S3 网关 元数据 数据平面 缓存的经典架构组件模板文件职责apiapi-deployment.yaml、api-service.yaml、api-configmap.yaml、api-secrets.yaml、api-hpa.yaml、api-ingress.yaml接收 S3 请求负责鉴权、元数据读写与数据转发容器端口 8000以npm run start_s3server启动localdatalocaldata-deployment.yaml、localdata-pvc.yaml、localdata-service.yaml本地数据平面实际落盘存储对象数据容器端口 9991以npm run start_dataserver启动MongoDB ReplicaSet依赖mongodb-replicaset版本 3.17.2存储 S3 对象元数据S3METADATAmongodbRedis HA依赖redis-ha版本 4.4.4提供 Redis 缓存/会话能力masterGroupName默认为cloudserver依赖关系声明在 requirements.yaml 中且均带condition开关mongodb-replicaset.enabled、redis-ha.enabled允许部署时按需关闭外部依赖、接入自建服务。二、快速安装TL;DR最简安装只需一条命令$ helm install stable/cloudserver该命令以 Chart 默认配置在集群中创建 Cloudserver 部署。默认配置会同时拉起 api、localdata、MongoDB ReplicaSet 与 Redis HA满足开箱即用的演示需求。三、安装 Chart以自定义 release 名称安装$ helm install --name my-release stable/cloudserverTip使用helm list可查看当前集群中的所有 release。上述命令按默认配置部署。安装阶段可配置的全部参数见下文配置参数表这些参数的默认值均来自 values.yaml。3.1 通过--set覆盖参数每个参数都可以通过helm install的--set keyvalue[,keyvalue]参数指定。例如将 api 组件副本数扩到 5$ helm install stable/cloudserver --name my-release \ --set api.replicaCount53.2 通过自定义 values 文件覆盖更推荐的方式是准备一份 YAML 文件集中管理覆盖项$ helm install stable/cloudserver --name my-release -f values.yamlTip可以基于默认 values.yaml 复制一份再修改保证所有键名与默认值可对照。四、卸载 Chart卸载my-release部署$ helm delete my-release该命令会删除与该 release 关联的所有 Kubernetes 组件并移除 release。需要注意localdata-pvc.yaml 为 PVC 注入了helm.sh/resource-policy: keep注解即localdata 的持久卷声明在 release 删除后会被保留数据不会随卸载丢失需手工决定是否清理这对有数据保留需求的场景是有意设计。五、配置参数全表下表完整列出 Cloudserver Chart 的可配置参数及其默认值README 原始表格默认值以 values.yaml 为准参数说明默认值serviceAccounts.api.create是否创建 cloudserver api 的 ServiceAccounttrueserviceAccounts.api.nameapi ServiceAccount 的名称使用或创建{{ cloudserver.api.fullname }}serviceAccounts.localdata.create是否创建 cloudserver localdata 的 ServiceAccounttrueserviceAccounts.localdata.namelocaldata ServiceAccount 的名称使用或创建{{ cloudserver.localdata.fullname }}image.repositorycloudserver 镜像仓库zenko/cloudserverimage.tagcloudserver 镜像 Tag8.1.5image.pullPolicy镜像拉取策略IfNotPresentapi.replicaCountapi 副本数1api.locationConstraintscloudserver 存储后端location constraint配置{}values.yaml 内默认含us-east-1文件类型示例api.credentials.accessKeyapi 访问密钥my-access-keyapi.credentials.secretKeyapi 私有密钥my-secret-keyapi.logLevelapi 日志级别infoapi.env为 api 附加的环境变量{}api.proxy.httpHTTP 代理端点api.proxy.httpsHTTPS 代理端点api.proxy.caCert为 true 时额外添加受信任的 CA 证书falseapi.proxy.no_proxy免代理的例外地址api.service.typeapi Service 类型ClusterIPapi.service.portapi Service 端口80api.service.annotationsapi Service 注解{}api.endpoint允许外部访问的虚拟主机名cloudserver.localapi.ingress.enabled为 api 创建 Ingressfalseapi.ingress.annotationsapi Ingress 注解{}api.ingress.pathapi Ingress 路径/api.ingress.hostsapi Ingress 主机名[]api.ingress.tlsapi Ingress TLS 配置[]api.resourcesapi 资源请求与限制{}api.nodeSelectorapi Pod 调度节点标签{}api.tolerationsapi Pod 容忍度[]api.affinityapi Pod 亲和性{}api.autoscaling.enabled为 api 创建 HPAfalseapi.config.minReplicasHPA 最小副本数1api.config.maxReplicasHPA 最大副本数1README 表格值values.yaml 实际为16下文有说明api.config.targetCPUUtilizationPercentageHPA 目标 CPU 利用率80localdata.replicaCountlocaldata 副本数1localdata.persistentVolume.enabled为 localdata 创建 PVCtruelocaldata.persistentVolume.accessModesPVC 访问模式ReadWriteOncelocaldata.persistentVolume.annotationsPVC 注解{}localdata.persistentVolume.existingClaim复用已有 PVC 名称localdata.persistentVolume.sizePVC 容量1Gilocaldata.resourceslocaldata 资源请求与限制{}mongodb-replicaset.enabled是否随 Chart 安装 MongoDB ReplicaSettruemongodb-replicaset.replicasMongoDB 副本数1mongodb-replicaset.replicaSetNameReplicaSet 名称rs0mongodb-replicaset.securityContextPod 安全上下文{runAsUser: 1000, fsGroup: 1000, runAsNonRoot: true}redis-ha.enabled是否随 Chart 安装 Redis HAtrueredis-ha.replicasRedis master/slave 副本数1redis-ha.redis.masterGroupNameRedis 集群组命名cloudserverredis-ha.affinityRedis 调度亲和性[]注意api.config.maxReplicas在 README 参数表中记录的默认值为1而仓库内 values.yaml 的实际默认值为16。启用 HPA 前请以 values.yaml 为准并显式确认你的取值。六、关键配置项源码级详解6.1 存储后端locationConstraintsapi.locationConstraints决定 Cloudserver 使用哪些存储后端location。values.yaml 默认提供了一个us-east-1文件类型示例api: locationConstraints: us-east-1: type: file objectId: us-east-1 legacyAwsBehavior: true details: {}从模板实现看api-configmap.yaml该配置会被序列化为 JSON 写入名为locationConfig.json的 ConfigMap 数据项并挂载到 api Pod 的/etc/config目录api-deployment.yaml 通过S3_LOCATION_FILE/etc/config/locationConfig.json环境变量让 Cloudserver 加载这份配置同时用checksum/config注解include ... | sha256sum实现 ConfigMap 变更时自动触发 Deployment 滚动更新。type: file表示对象数据落在 localdata 组件的本地文件系统若对接 Azure、Google 等云则在此处按 Cloudserver 规范配置对应后端类型的details。6.2 访问凭据credentialsapi.credentials.accessKey与api.credentials.secretKey会经 api-secrets.yaml 以 base64 编码存入 Opaque SecretaccessKey、secretKey两个键再由 api-deployment.yaml 通过secretKeyRef注入为SCALITY_ACCESS_KEY_ID与SCALITY_SECRET_ACCESS_KEY。请务必在生产环境覆盖默认值my-access-key/my-secret-key避免使用公开的弱凭据。6.3 api 环境变量与启动方式api 容器以args: [npm, run, start_s3server]启动监听容器端口 8000模板固定注入以下关键环境变量见 api-deployment.yaml环境变量来源/值作用S3METADATAmongodb指定元数据存储为 MongoDBMONGODB_HOSTSmongodb-replicaset.urlhelperMongoDB 成员地址列表逗号分隔MONGODB_RSmongodb-replicaset.replicaSetReplicaSet 名称默认rs0S3_LOCATION_FILE/etc/config/locationConfig.jsonlocation 配置文件路径DATA_HOSTcloudserver.localdata.fullnamehelperlocaldata 服务主机名REDIS_HOSTrelease-redis-haRedis 主机REDIS_PORT6379Redis 端口REDIS_SENTINELSredis-ha.urlhelperRedis Sentinel 地址列表REDIS_HA_NAMEredis-ha.redis.masterGroupNameRedis master group 名称LOG_LEVELapi.logLevel日志级别info/debug/traceENDPOINT全名 api.endpoint逗号拼接允许的虚拟主机S3 虚拟主机风格访问HEALTHCHECKS_ALLOWFROM0.0.0.0/0允许健康检查的来源SCALITY_ACCESS_KEY_ID/SCALITY_SECRET_ACCESS_KEYSecret 引用S3 访问凭据此外api.env中自定义的键值会被转换为大写、.替换为_的环境变量注入容器可用于向镜像追加任意参数。6.4 健康检查api 容器配置了livenessProbe通过GET /_/healthcheck检测存活initialDelaySeconds: 60给足启动时间localdata 容器则配置了 TCP 探测端口 9991同时含livenessProbe与readinessProbe见 localdata-deployment.yaml。6.5 代理与 CA 证书当 Cloudserver 需要部署在公司代理之后时配置api.proxy.*values.yaml 中相关注释与 README 参数表一致api: proxy: http: http://proxy.example.com:8080 https: https://proxy.example.com:8443 caCert: true no_proxy: internal.local,127.0.0.1模板会同步注入http_proxy/HTTP_PROXY、https_proxy/HTTPS_PROXY、no_proxy/NO_PROXY的大小写双份变量caCert: true时Chart 会从根目录读取名为ca.crt的文件并生成release-cacertSecret见 api-certificate.yaml挂载到/ssl并设置NODE_EXTRA_CA_CERTS/ssl/ca.crt让 Node.js 信任该证书。6.6 对外暴露Service 与 Ingressapi 默认以ClusterIP类型 Service端口 80容器端口 8000暴露values.yaml 中预留了 Prometheus 抓取注解示例api: service: annotations: prometheus.io/scrape: true prometheus.io/port: 8000 prometheus.io/path: /_/monitoring/metrics如需对外访问启用 Ingressapi-ingress.yamlapi: endpoint: cloudserver.local ingress: enabled: true annotations: kubernetes.io/ingress.class: nginx kubernetes.io/tls-acme: true path: / hosts: - cloudserver.local tls: - secretName: cloudserver-example-tls hosts: - cloudserver-example.local注意values.yaml 与 README 均强调Ingress hosts 必须与api.endpoint匹配否则客户端以不同 hostname 访问时会被拒绝ENDPOINT环境变量即用于声明允许的虚拟主机。6.7 自动伸缩HPA启用 api-hpa.yaml 需要同时满足api: autoscaling: enabled: true config: minReplicas: 1 maxReplicas: 16 targetCPUUtilizationPercentage: 80values.yaml 中的注释明确提示设置targetCPUUtilizationPercentage时必须为 api 配置resources.requests.cpu否则基于 CPU 的 HPA 无法正常工作建议将 CPU request 设为1或更低的值以利于扩容触发。此外api-deployment.yaml 在autoscaling.enabled为 true 时会省略spec.replicas字段将副本数交由 HPA 控制。6.8 localdata 数据持久化localdata 是对象数据的落盘组件其持久化逻辑如下localdata-pvc.yaml 与 localdata-deployment.yamlpersistentVolume.enabled: true默认时创建 PVC默认容量1Gi、访问模式ReadWriteOnce并带有helm.sh/resource-policy: keep注解可设置existingClaim复用已有 PVC此时跳过 PVC 创建也可通过storageClass指定存储类若不启用持久化则回退到emptyDirPod 重建即丢数据仅适合测试值得注意的初始化逻辑localdata 容器前有一个busybox的initContainers它会在/data下预建3511个数字命名目录mkdir -p /data/1…/data/3511这是 Cloudserver 数据目录按 ID 分片的约定布局数据路径由S3DATAPATH/data指定。6.9 依赖组件MongoDB 与 Redismongodb-replicaset默认enabled: true、replicas: 1、replicaSetName: rs0、安全上下文{runAsUser: 1000, fsGroup: 1000, runAsNonRoot: true}。MongoDB 成员地址由 _helpers.tpl 中的mongodb-replicaset.url模板生成形如release-mongodb-replicaset-0.release-mongodb-replicaset:27017redis-ha默认enabled: true、replicas: 1、redis.masterGroupName: cloudserver。Sentinel 地址由redis-ha.url模板生成形如release-redis-ha-server-0.release-redis-ha:26379若你已有自建 MongoDB/Redis可将对应enabled置为false此时两个 URL helper 会回退读取mongodb-replicaset.url与redis-ha.url这两个用户提供的字段见 _helpers.tpl实现外部依赖接入。七、服务账户ServiceAccountChart 为 api 与 localdata 分别创建独立的 ServiceAccount默认开启名称分别为 release 全名与release-localdata。在 api-serviceaccount.yaml 与 localdata-serviceaccount.yaml 中serviceAccounts.api.name/serviceAccounts.localdata.name允许自定义名称若将对应create置为false则使用defaultServiceAccount 或你指定的已存在账户逻辑见 _helpers.tpl 的cloudserver.serviceAccountName.api/cloudserver.serviceAccountName.localdata。八、安装后的验证与资源清单安装完成后可通过 templates/NOTES.txt 输出的提示了解 release 状态并可查看 templates/tests/test-cloudserver.yamlChart 自带的 helm test 测试模板确认基本连通性。一次默认安装实际渲染出的核心资源包括api 组件Deployment、Service、ConfigMaplocationConfig.json、Secret凭据、ServiceAccount以及可选的 HPA、Ingress、CA 证书 Secretlocaldata 组件Deployment、Service、PVC、ServiceAccount依赖组件MongoDB ReplicaSet 全套资源、Redis HA 全套资源。九、常见实战注意事项务必覆盖默认凭据my-access-key/my-secret-key是公开默认值生产环境必须通过--set api.credentials.accessKey... --set api.credentials.secretKey...或 values 文件覆盖。HPA 与 CPU request 联动启用自动伸缩前先配置api.resources.requests.cpu。Ingress host 与 endpoint 一致性api.ingress.hosts需与api.endpoint保持一致。localdata 数据保留策略PVC 带helm.sh/resource-policy: keep卸载 Chart 不会删除数据卷扩容缩容与迁移前需评估存储占用。代理环境启用api.proxy.caCert前需在 Chart 根目录放置ca.crt文件。版本与兼容性本 Chart 面向 Kubernetes^1.8.0-0及 Helm 2 风格命令--name参数、helm delete且仓库已归档、Chart 已废弃若用于新集群请优先评估 Cloudserver 官方维护的新版部署方案。十、关联文件速查配置入口stable/cloudserver/values.yamlChart 元数据stable/cloudserver/Chart.yaml依赖声明stable/cloudserver/requirements.yamlapi 部署模板stable/cloudserver/templates/api-deployment.yamllocaldata 部署模板stable/cloudserver/templates/localdata-deployment.yaml存储后端配置模板stable/cloudserver/templates/api-configmap.yaml名称与 URL 辅助模板stable/cloudserver/templates/_helpers.tpl赞分享【免费下载链接】charts⚠️(OBSOLETE) Curated applications for Kubernetes项目地址https://gitcode.com/gh_mirrors/chart/charts点击查看免费下载相关推荐多GPU序列并行落地指南LTX-2 怎么把视频 token 均匀切到 N 张卡多GPU序列并行落地指南LTX 2 怎么把视频 token 均匀切到 N 张卡 四张卡跑一段 121 帧视频单步 denoising 的延迟却很难压下去全在 Kubernetes 上部署 MLflowHelm Chart 生产级安装与配置实战在 Kubernetes 上部署 MLflowHelm Chart 生产级安装与配置实战 MLflow 官方仓库自带的 Helm Chart位于 chartMLOpsLLMOps人工智能大模型模型评测LLM 网关可观测性使用 Helm Chart 在 Kubernetes 上部署 Istio 0.2.12安装、RBAC 与配置实战使用 Helm Chart 在 Kubernetes 上部署 Istio 0.2.12安装、RBAC 与配置实战 Istio 是一个为微服务提供统一连接、管理上一篇OpenCore Legacy Patcher 指南老 Intel Mac 升级新版 macOS 教程下一篇Electron.NET 全局快捷键指南用 GlobalShortcut 实现系统级热键与后台监听创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考