当数据库服务为clusterIP时,如何通过MONGO_URL连接mongodb服务?

时间:2019-08-29 03:56:59

标签: kubernetes yaml

我将流星应用程序分为2个容器:应用程序和节点。在docker世界中,该应用程序可以成功连接到节点,但是在kubernetes中,我遇到了困难。

我的想法是先启动mongodb并创建mongodb服务,然后创建应用程序以连接mongodb服务,但是我不确定如何让应用程序使用MONGO_URL连接到服务的clusterIP。

所以,我有一个显示以下内容的应用程序部署

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: app
  name: mycloud
spec:
  replicas: 1
  selector:
    matchLabels:
     app: app
  template:
    metadata:
      labels:
        app: app
    spec:
      containers:
      - name: app
        image: yufang/cloud_docker_app
        ports:
        - containerPort: 3000
        env:
        - name: MONGO_URL
          value: mongodb://localhost:27017/meteor # here comes the key point. How to specify the service's ip? or use the selector to specify the service's label?
        - name: PORT
          value: "3000"
       - name: ROOT_URL
          value: http://localhost

该服务被描述为波纹管,

apiVersion: v1
kind: Service
metadata:
 name: mongo
 labels:
  name: mongo
spec:
 ports:
  - port: 27017
    targetPort: 27017
 clusterIP: None
 selector:
  app: mongo

任何想法都值得赞赏。

1 个答案:

答案 0 :(得分:1)

如果mongodb和mycloud在同一名称空间中,则可以使用http://mongodb:27017

如果它们在不同的命名空间中,则可以使用FQDN http://mongodb.namespace.svc.cluster.local:27017

引用:https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/