【问题标题】:MongoDB in Kubernetes within GCPGCP 中 Kubernetes 中的 MongoDB
【发布时间】:2020-04-17 10:09:52
【问题描述】:

我正在尝试在我的 k8s 集群上部署 mongodb,因为 mongodb 是我选择的数据库。为此,我已经配置了文件(与几周前我对 postgress 所做的非常相似)。

这里是 mongo 的部署 k8s 对象:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: panel-admin-mongo-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      component: panel-admin-mongo
  template:
    metadata:
      labels:
        component: panel-admin-mongo
    spec:
      volumes:
        - name: panel-admin-mongo-storage
          persistentVolumeClaim:
            claimName: database-persistent-volume-claim
      containers:
        - name: panel-admin-mongo
          image: mongo
          ports:
            - containerPort: 27017
          volumeMounts:
            - name: panel-admin-mongo-storage
              mountPath: /data/db

为了进入 pod,我做了一个服务:

apiVersion: v1
kind: Service
metadata:
  name: panel-admin-mongo-cluster-ip-service
spec:
  type: ClusterIP
  selector:
    component: panel-admin-mongo
  ports:
    - port: 27017
      targetPort: 27017

当然我也需要 PVC:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: database-persistent-volume-claim
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi

为了从我的服务器访问数据库,我使用了服务器部署对象:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: panel-admin-api-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      component: panel-admin-api
  template:
    metadata:
      labels:
        component: panel-admin-api
    spec:
      containers:
        - name: panel-admin-api
          image: my-image
          ports:
            - containerPort: 3001
          env:
            - name: MONGO_URL 
              value: panel-admin-mongo-cluster-ip-service // This is important
      imagePullSecrets:
        - name: gcr-json-key

但由于某种原因,当我使用 kubectl apply 命令启动所有容器时,我的服务器说: MongoDB :: connection error: MongoParseError: Invalid connection string

我可以这样部署它吗(就像 postgress 一样)?或者我在这里错过了什么?

【问题讨论】:

    标签: mongodb docker kubernetes


    【解决方案1】:

    在你的 panel-admin-mongo-cluster-ip-service 前面使用 mongodb://

    所以它应该是这样的: mongodb://panel-admin-mongo-cluster-ip-service

    【讨论】:

    • 感谢您的回答。错误消失了,但现在我得到的是MongoDB :: connection error: Error: getaddrinfo ENOTFOUND panel-admin-mongo-cluster-ip-service
    • 尝试将/somedbname 添加到像here 这样的URL,例如mongodb://panel-admin-mongo-cluster-ip-service/somedbname
    • 太棒了!我刚刚连接到 db,谢谢你的时间!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 2016-10-05
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多