
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该镜像作为sidecar容器,用于解决在Kubernetes上以StatefulSet运行MongoDB副本集时,外部服务(如Load***)随机选择pod导致连接到只读从节点的问题。通过自动检测MongoDB副本集中的主节点,并为主节点pod添加primary=true标签,使外部服务可通过选择器定向连接主节点,确保读写操作正常执行。
primary=true标签,非主节点自动移除该标签适用于以下场景:
创建外部服务时,使用primary=true标签作为选择器,确保仅定向到主节点:
yamlapiVersion: v1 kind: Service metadata: name: mongo-external labels: name: mongo spec: type: LoadBalancer ports: - name: mongo port: 27017 selector: role: mongo # 匹配MongoDB pod的基础标签 primary: "true" # 匹配sidecar标记的主节点
通过环境变量自定义sidecar行为:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
| LABEL_SELECTOR | 用于识别MongoDB pod的标签选择器,格式为"key=value,key2=value2" | 无 |
| NAMESPACE | 限制搜索MongoDB pod的命名空间 | 当前命名空间 |
| DEBUG | 设置为"true"时增加日志详细程度 | "false" |
环境变量配置示例
在StatefulSet的容器定义中添加环境变量:
yamlenv: - name: LABEL_SELECTOR value: "role=mongo,environment=dev" # 匹配角色为mongo且环境为dev的pod - name: NAMESPACE value: "dev" # 仅在dev命名空间中搜索 - name: DEBUG value: "true" # 启用详细日志
若需在集群外测试,需:
~/.kube/configkubectl port-forward将MongoDB pod端口转发到本地:
bashkubectl port-forward mongo-0 27017 # 将mongo-0 pod的27017端口转发到本地
localhost:27017进行测试以下是包含sidecar的MongoDB StatefulSet简化配置:
yamlapiVersion: apps/v1 kind: StatefulSet metadata: name: mongo spec: serviceName: mongo replicas: 3 selector: matchLabels: role: mongo template: metadata: labels: role: mongo spec: containers: - name: mongo image: mongo args: ["--replSet", "rs0", "--bind_ip_all"] ports: - containerPort: 27017 - name: mongo-labeler # sidecar容器 image: [镜像名称] # 替换为实际的sidecar镜像名称 env: - name: LABEL_SELECTOR value: "role=mongo" - name: NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: DEBUG value: "false"
注意:需将配置中的
[镜像名称]替换为实际使用的sidecar镜像名称。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务