我在kubernetes上配置了一个mongoDB,有两个副本:*mongo-0*mongo-1,我有另一个pod,mongo-Express*mongo-Express
问题是,我想将mongo-Express连接到主mongo副本,但kubernetes正在进行负载平衡,因此,有时它会连接为主,其他连接为辅助
我该如何解决这个问题?
谢啦
你应该为你的任何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 <---