【问题标题】:Connect to primary replica set mongo on kubernetes连接到 kubernetes 上的主副本集 mongodb
【发布时间】:2019-06-25 14:12:27
【问题描述】:

我在 kubernetes 上配置了一个带有两个副本的 mongodb: * mongo-0 * mongo-1 我还有另一个带有 mongo-express 的 pod * mongo-express

问题是,我想将 mongo-express 连接到主要的 mongo 副本,但是 kubernetes 正在做负载平衡,所以,有时它会作为主要连接,而另一些则作为次要连接

我该如何解决这个问题?

谢谢

【问题讨论】:

    标签: mongodb kubernetes


    【解决方案1】:

    你应该为你的任何 mongo 创建一个服务。这意味着您应该为 3 个 pod 提供 3 个服务。 通过一项服务,您无法做到这一点。

    【讨论】:

      【解决方案2】:

      您可以创建 MongoDB 的集群。但是对于 MongoDB-express 副本,您可以创建服务并将其连接到其他副本可能不起作用。

      【讨论】:

        【解决方案3】:

        如果您要使用 helm 安装 mongodb 集群,则 mongodb 图表以这种方式模板化,它允许您在服务级别定义(带有标签选择器)上选择它应该定位的特定副本 - 主副本或辅助副本。请记住,它不会留给用户使用图表值进行自定义,因此它需要“硬”更改。至少它应该让您了解如何轻松满足您的需求。

        这是示例清单文件:

        # Source: mongodb/templates/svc-primary-rs.yaml
        apiVersion: v1
        kind: Service
        metadata:
          name: my-mongo-mongodb
          labels:
            app: mongodb
            chart: mongodb-5.3.0
            release: "my-mongo"
            heritage: "Tiller"
        spec:
          type: ClusterIP
          ports:
          - name: mongodb
            port: 27017
            targetPort: mongodb
          selector:
            app: mongodb
            release: "my-mongo"
            component: secondary  <---
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-05-25
          • 2021-10-10
          • 1970-01-01
          • 2013-11-02
          • 2014-07-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多