提问者:小点点

连接到Kubernetes上的主副本集mongo


我在kubernetes上配置了一个mongoDB,有两个副本:*mongo-0*mongo-1,我有另一个pod,mongo-Express*mongo-Express

问题是,我想将mongo-Express连接到主mongo副本,但kubernetes正在进行负载平衡,因此,有时它会连接为主,其他连接为辅助

我该如何解决这个问题?

谢啦


共3个答案

匿名用户

你应该为你的任何mongo创建一个服务。这意味着你应该有3个服务3个pod。通过一个服务,你不能这样做。

匿名用户

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

匿名用户

如果你想用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  <---