0

我有一个应用程序 Docker 映像,它在随机端口上启动一个 mongodb 实例。当我使用应用程序映像创建 Kubernetes Pod 时;应用程序成功初始化,mongodb 实例在localhost:port的随机端口上启动,没有任何错误。

但是,当我创建 Kubernetes 部署时;容器内相同的应用程序初始化失败,并出现错误“mongodb 无法启动,因为localhost:port无法访问”。

如果有人可以解释,为什么 K8-Deployment 应用程序初始化失败,而 K-8Pod 却没有?而且,我该如何解决这个问题?

apiVersion: apps/v1
kind: Pod
metadata:
  name: my-app
spec:
  containers:
  - name: my-app
    image: my-app:v1
    ports:
    - containerPort: 8888 # Apps exposed port

---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
  labels:
    app: my-dep
spec:
  replicas: 2
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: my-app:v1
        ports:
        - containerPort: 8888 # Apps exposed port

谢谢

4

1 回答 1

1

而不是监听localhost:port,您应该尝试将 MongoDB 配置为监听0.0.0.0:port。当另一个应用程序遇到类似问题时,这对我有帮助。

配置MongoDB监听所有接口

您的mongod.conf

# /etc/mongod.conf

# Listen to local interface only. Comment out to listen on all interfaces.
bind_ip = 127.0.0.1

改成这个

# /etc/mongod.conf

# Listen to local interface only. Comment out to listen on all interfaces.
# bind_ip = 127.0.0.1
于 2019-12-14T10:29:15.893 回答