如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
NATS 是一个开源、轻量级且高性能的消息系统,适用于分布式系统,支持现代云架构及发布-订阅(pub-sub)、请求-回复(request-reply)和队列模型。Bitnami NATS Helm Chart 用于在 Kubernetes 集群上通过 Helm 包管理器快速部署和配置 NATS 服务。
NATS 官方概述
商标声明:本软件包由 Bitnami 打包。所提及的相关商标归各自公司所有,使用这些商标并不意味着任何关联或背书。
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/nats
生产环境建议:如需在生产环境使用,可尝试 VMware Tanzu Application Catalog(Bitnami 商业版目录)。
consolehelm repo add bitnami https://charts.bitnami.com/bitnami helm repo update
使用自定义发布名称(如 my-nats)安装:
consolehelm install my-nats oci://registry-1.docker.io/bitnamicharts/nats
注意:如需指定镜像仓库和路径,需替换
REGISTRY_NAME和REPOSITORY_NAME。例如,Bitnami 官方仓库使用REGISTRY_NAME=registry-1.docker.io和REPOSITORY_NAME=bitnamicharts。
检查 Pod 状态:
consolekubectl get pods -l app.kubernetes.io/name=nats
检查服务状态:
consolekubectl get svc my-nats
自 2025 年 8 月 28 日起,Bitnami 将升级其公共镜像目录,推出基于 Bitnami Secure Images 计划的安全加固镜像。过渡期安排如下:
这些变更旨在通过推广软件供应链完整性最佳实践和最新部署,提升所有 Bitnami 用户的安全态势。详情参见 https://github.com/bitnami/containers/issues/83267%E3%80%82
Bitnami 图表允许为部署中的所有容器设置资源请求和限制,通过 resources 参数配置。生产环境建议显式设置资源请求,以适配实际工作负载。
示例配置:
yamlresources: requests: cpu: 100m memory: 128Mi limits: cpu: 500m memory: 512Mi
此外,可通过 resourcesPreset 参数使用预设资源配置(如 small、medium、large),但生产环境建议自定义配置以满足特定需求。
升级时,Bitnami NATS 图表会复用之前生成的密钥或 existingSecret 指定的密钥。更新凭证的方法:
通过参数指定新凭证:
consolehelm upgrade my-nats oci://registry-1.docker.io/bitnamicharts/nats --set auth.token=new-token
指定新的现有密钥:
consolehelm upgrade my-nats oci://registry-1.docker.io/bitnamicharts/nats --set existingSecret=new-secret-name
如需备份和恢复 Kubernetes 上的 Helm 部署,需备份源部署的持久卷并通过 Velero(Kubernetes 备份/恢复工具)附加到新部署。操作指南参见 使用 Velero 备份和恢复部署。
通过设置 metrics.enabled=true 可启用 Prometheus 集成,将在所有 Pod 中部署带有 https://github.com/nats-io/prometheus-nats-exporter 的 Sidecar 容器,并创建 metrics 服务,支持 Prometheus 自动发现。
前提条件
与 Prometheus Operator 集成
设置 metrics.serviceMonitor.enabled=true 可部署 ServiceMonitor 对象,实现与 Prometheus Operator 的集成。需确保集群中已安装 Prometheus Operator CRDs,否则会报错:
textno matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"
生产环境强烈建议使用不可变标签(如具体版本号),避免因镜像标签更新导致部署意外变更。Bitnami 会在存在主容器新版本、重大变更或严重漏洞时发布新图表,更新容器镜像。
通过 extraEnvVars 参数添加额外环境变量:
yamlextraEnvVars: - name: LOG_LEVEL value: DEBUG
或通过 ConfigMap 或 Secret 注入:
yamlextraEnvVarsCM: my-configmap # 包含环境变量的 ConfigMap 名称 extraEnvVarsSecret: my-secret # 包含环境变量的 Secret 名称
Sidecar 容器
如需在 Pod 中添加额外容器(如日志或指标采集器),通过 sidecars 参数配置:
yamlsidecars: - name: log-exporter image: busybox:latest imagePullPolicy: Always command: ["tail", "-f", "/var/log/nats.log"] volumeMounts: - name: logs mountPath: /var/log
如需暴露额外端口,通过 service.extraPorts 配置:
yamlservice: extraPorts: - name: metrics port: 9090 targetPort: 9090
注意:图表已包含 Prometheus exporter 的 Sidecar 容器(当
metrics.enabled=true时),sidecars参数仅用于添加额外容器。
Init 容器
通过 initContainers 参数配置 Init 容器(在主容器启动前运行):
yamlinitContainers: - name: init-config image: busybox:latest command: ["sh", "-c", "echo 'init config' > /config/init.conf"] volumeMounts: - name: config mountPath: /config
通过 extraDeploy 参数部署额外 Kubernetes 对象(如 ConfigMap、Deployment 等):
yamlextraDeploy: - apiVersion: v1 kind: ConfigMap metadata: name: nats-custom-config data: custom.conf: | max_payload: 1MB
通过 affinity 参数自定义 Pod 亲和性规则:
yamlaffinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app.kubernetes.io/name operator: In values: [nats] topologyKey: "kubernetes.io/hostname"
或使用预设亲和性配置(来自 https://github.com/bitnami/charts/tree/main/bitnami/common#affinities 图表):
yamlpodAntiAffinityPreset: hard # 强制 Pod 分布在不同节点 nodeAffinityPreset: type: required key: node-role.kubernetes.io/worker values: [true]
| 名称 | 描述 | 默认值 |
|---|---|---|
global.imageRegistry | 全局 Docker 镜像仓库 | "" |
global.imagePullSecrets | 全局 Docker 镜像仓库密钥名称数组 | [] |
global.defaultStorageClass | 持久卷的全局默认存储类 | "" |
global.security.allowInsecureImages | 允许跳过镜像验证 | false |
global.compatibility.openshift.adaptSecurityContext | 调整安全上下文以适配 OpenShift restricted-v2 SCC(移除 runAsUser、runAsGroup 和 fsGroup),可选值:auto(自动检测 OpenShift 时应用)、force(强制应用)、disabled(禁用) | auto |
| 名称 | 描述 | 默认值 |
|---|---|---|
kubeVersion | 覆盖 Kubernetes 版本 | "" |
nameOverride | 部分覆盖资源名称前缀 | "" |
fullnameOverride | 完全覆盖资源全名 | "" |
namespaceOverride | 覆盖命名空间 | "" |
commonLabels | 为所有资源添加标签 | {} |
commonAnnotations | 为所有资源添加注解 | {} |
clusterDomain | Kubernetes 集群域名 | cluster.local |
extraDeploy | 额外部署的资源数组 | [] |
diagnosticMode.enabled | 启用诊断模式(禁用所有探针,覆盖命令) | false |
diagnosticMode.command | 诊断模式下覆盖所有容器的命令 | ["sleep"] |
diagnosticMode.args | 诊断模式下覆盖所有容器的参数 | ["infinity"] |
| 名称 | 描述 | 默认值 |
|---|---|---|
image.registry | NATS 镜像仓库 | REGISTRY_NAME |
image.repository | NATS 镜像仓库路径 | REPOSITORY_NAME/nats |
image.digest | 镜像摘要(如设置将覆盖标签) | "" |
image.pullPolicy | 镜像拉取策略 | IfNotPresent |
image.pullSecrets | 镜像拉取密钥 | [] |
auth.enabled | 是否启用客户端认证 | true |
auth.token | 客户端认证令牌 | "" |
auth.credentials | 客户端认证用户凭证集合(当 auth.token 未设置时生效) | [] |
auth.noAuthUser | 未认证访问关联的用户(必须是 auth.credentials 中的用户,未设置则拒绝未认证访问) | "" |
auth.timeout | 客户端认证超时时间(秒) | 1 |
tls.enabled | 是否启用 TLS 配置 | false |
tls.autoGenerated.enabled | 是否自动生成 TLS 证书 | true |
tls.autoGenerated.engine | 证书生成机制(允许值:helm、cert-manager) | helm |
tls.autoGenerated.certManager.existingIssuer | 现有 Issuer 名称(仅 cert-manager 机制) | "" |
tls.autoGenerated.certManager.existingIssuerKind | 现有 Issuer 类型(默认:Issuer,仅 cert-manager 机制) | "" |
tls.autoGenerated.certManager.keyAlgorithm | 证书密钥算法(仅 cert-manager 机制) | RSA |
tls.autoGenerated.certManager.keySize | 证书密钥长度(仅 cert-manager 机制) | 2048 |
tls.autoGenerated.certManager.duration | 证书有效期(仅 cert-manager 机制) | 2160h |
tls.autoGenerated.certManager.renewBefore | 证书续期提前时间(仅 cert-manager 机制) | 360h |
tls.ca | CA 证书内容(当 tls.existingCASecret 未设置时生效) | "" |
tls.existingCASecret | 包含 CA 证书的现有 Secret 名称 | "" |
tls.server.cert | 服务端 TLS 证书内容(当 tls.server.existingSecret 未设置时生效) | "" |
tls.server.key | 服务端 TLS 密钥内容(当 tls.server.existingSecret 未设置时生效) | "" |
tls.server.existingSecret | 包含服务端 TLS 证书的现有 Secret 名称 | "" |
tls.client.cert | 客户端 TLS 证书内容(当 tls.client.existingSecret 未设置时生效) | "" |
tls.client.key | 客户端 TLS 密钥内容(当 tls.client.existingSecret 未设置时生效) | "" |
tls.client.existingSecret | 包含客户端 TLS 证书的现有 Secret 名称 | "" |
cluster.name | 集群名称 | nats |
cluster.connectRetries | 隐式路由连接重试次数(不设置则使用默认值) | "" |
cluster.auth.enabled | 是否启用集群认证 | true |
cluster.auth.user | 集群认证用户名 | nats_cluster |
cluster.auth.password | 集群认证密码 | "" |
jetstream.enabled | 是否启用 JetStream | false |
jetstream.maxMemory | JetStream 最大内存使用量 | 1G |
jetstream.storeDirectory | JetStream 数据存储目录 | /data |
debug.enabled | 是否启用调试日志 | false |
debug.trace | 是否启用跟踪级调试日志 | false |
升级图表至最新版本:
consolehelm repo update helm upgrade my-nats oci://registry-1.docker.io/bitnamicharts/nats
指定版本升级:
consolehelm upgrade my-nats oci://registry
以下是 bitnamicharts/nats 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



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