
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该项目是一个在Kubernetes中设置MongoDB副本集的PoC(概念验证)。它能够处理任何类型的副本集调整大小,并对MongoDB和Kubernetes可能出现的各种情况具备弹性。
这是https://github.com/cvallance/mongo-k8s-mongo-sidecar%E7%9A%84%E5%88%86%E6%94%AF%E7%89%88%E6%9C%AC%EF%BC%8C%E5%8C%85%E5%90%AB%EF%BC%88%E8%AE%B8%E5%A4%9A%EF%BC%89%E6%9B%B4%E6%94%B9%E5%92%8C%E6%94%B9%E8%BF%9B%E3%80%82
该Docker镜像作为sidecar容器,与MongoDB容器配合使用,在Kubernetes环境中自动管理MongoDB副本集的配置和维护。它能够发现Kubernetes集群中的MongoDB Pod,自动初始化副本集,并在Pod发生变化(如扩缩容、故障转移)时更新副本集配置。
适用于在Kubernetes集群中部署MongoDB副本集的场景,特别是需要自动管理副本集配置、支持动态扩缩容和高可用性的生产环境。
Docker镜像托管在Docker Hub,地址:https://hub.docker.com/r/morphy/k8s-mongo-sidecar
Kubernetes复制控制器示例可在GitHub的examples目录中找到:https://github.com/morphy2k/k8s-mongo-sidecar/tree/master/example
| 环境变量 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|
| KUBERNETES_CLUSTER_DOMAIN | 否 | cluster.local | 允许指定自定义集群域名,用于创建Mongo Pod的稳定网络ID,例如:"kube.local" |
| KUBERNETES_SERVICE_NAME | 是 | mongo | 指向标识所有Mongo Pod的Kubernetes(无头)服务 |
| KUBERNETES_NAMESPACE | 否 | 查找Pod的命名空间,不设置时将搜索所有命名空间 | |
| KUBERNETES_POD_LABELS | 是 | 应与podTemplate标签相同的逗号分隔键值列表,见上文示例 | |
| MONGO_PORT | 否 | 27017 | 配置Mongo端口,允许使用非标准端口 |
| MONGO_CONFIG_SVR | 否 | false | 初始化副本集时配置configsvr变量 |
| MONGO_DATABASE | 否 | local | 配置Mongo认证数据库 |
| MONGO_USERNAME | 否 | 配置Mongo认证用户名 | |
| MONGO_PASSWORD | 否 | 配置Mongo认证密码 | |
| MONGO_AUTH_SOURCE | 否 | admin | 配置Mongo认证源数据库 |
| MONGO_AUTH_MECHANISM | 否 | SCRAM-SHA-1 | 配置Mongo认证机制 |
| MONGO_TLS | 否 | false | 启用MongoDB TLS连接 |
| MONGO_TLS_CA | 否 | TLS CA证书路径 | |
| MONGO_TLS_CERT | 否 | TLS证书路径 | |
| MONGO_TLS_KEY | 否 | TLS密钥路径 | |
| MONGO_TLS_PASS | 否 | TLS证书密码 | |
| MONGO_TLS_CRL | 否 | TLS证书吊销列表路径 | |
| MONGO_TLS_IDENTITY_CHECK | 否 | true | TLS期间的服务器身份检查,验证服务器主机名与证书是否匹配 |
| SIDECAR_SLEEP_SECONDS | 否 | 5 | 工作周期之间的睡眠时间(秒) |
| SIDECAR_UNHEALTHY_SECONDS | 否 | 30 | 副本集成员在被自动从副本集中移除前的健康检查等待时间(秒) |
以下示例展示了如何更新Mongo命令以启用TLS,并使用从secret获取并挂载到/data/tls/mongo/的证书。
命令配置
yaml- name: my-mongo image: mongo command: - mongod args: - "--replSet=rs0" - "--tlsMode=requireTLS" - "--tlsCAFile=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" - "--tlsCertificateKeyFile=/data/tls/mongo/full.pem" - "--bind_ip=0.0.0.0"
环境变量、卷和卷挂载配置
yamlvolumeMounts: - name: mongo-persistent-storage mountPath: /data/db - name: mongo-tls mountPath: /data/tls/mongo - name: mongo-sidecar image: morphy/k8s-mongo-sidecar env: - name: KUBERNETES_POD_LABELS value: "role=mongo,environment=prod" - name: MONGO_TLS value: "true" - name: MONGO_TLS_CA value: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" - name: "MONGO_TLS_CERT" value: "/data/tls/mongo/cert.pem" - name: MONGO_TLS_KEY value: "/data/tls/mongo/key.pem" volumeMounts: - name: mongo-tls mountPath: /data/tls/mongo volumes: - name: mongo-tls secret: secretName: mongo-tls defaultMode: 256 # 文件权限 0400
cert.pem和key.pem的证书和密钥合并为单个文件bashcat cert.pem key.pem > full.pem
bashkubectl create secret generic mongo-tls \ --from-file=full.pem \ --from-file=key.pem \ --from-file=cert.pem
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务