相关疑难解决方法(0)

如何从 kubernetes 集群内部访问主机的 localhost

在此应用程序中,nodejs pod 在 kubernetes 内部运行,而 mongodb 本身作为 localhost 位于主机外部。

这确实不是一个好的设计,但它只适用于开发环境。在生产中,将有一个单独的 mongodb 服务器,因为这样的选项可以在端点中具有非环回 IP,因此在生产中不会出现问题。

已考虑以下开发环境选项

  1. 使用 localhost 连接字符串连接到 mongodb,但它将引用 pod 自己的 localhost,而不是主机的 localhost

  2. 使用无头服务并在端点中提供本地主机 IP 和端口。但是端点不允许环回

建议是否有一种方法可以从集群内部(pod/nodejs 应用程序)访问主机本地主机上的 mongodb 数据库。

networking docker kubernetes

28
推荐指数
2
解决办法
3万
查看次数

在使用Kubernetes / minikube进行本地开发期间,如何连接到在本地主机上运行的postgres数据库?

我已经建立了在Google Kubernetes Engine + Google Cloud SQL上运行的应用程序堆栈。在本地开发时,我希望我的应用程序连接到在集群外部运行的postgres数据库服务器,以模拟生产环境。

似乎做到这一点的方法是通过定义一个外部端点,如下所述:Minikube将在本地主机上运行的MySQL作为服务公开

不幸的是,我无法将“ 127.0.0.1”指定为端点IP地址:

kubectl apply -f kubernetes/local/postgres-service.yaml
service "postgres-db" unchanged
The Endpoints "postgres-db" is invalid: subsets[0].addresses[0].ip: 
Invalid value: "127.0.0.1": may not be in the loopback range (127.0.0.0/8)
Run Code Online (Sandbox Code Playgroud)

所以我被迫将postgres绑定到我的实际机器地址。

似乎必须有一种方法可以将本地主机的端口映射到本地kubernetes集群,但是到目前为止,我还没有找到一种方法来实现。

有人知道诀窍吗?或者,有人可以建议不涉及在群集内运行postgres的替代解决方案吗?

postgresql localhost kubernetes minikube

5
推荐指数
2
解决办法
3277
查看次数

从minikube集群内部连接到本地数据库

我正在尝试从minikube pod内部访问托管在localhost的docker容器内的MySQL数据库,但收效甚微。我尝试了描述的解决方案,Minikube将在本地主机上运行的MySQL作为服务公开,但没有任何效果。我已经在我们在AWS上使用的服务上对我的解决方案建模,但是它似乎不适用于minikube。我的服务内容如下

apiVersion: v1

kind: Service

metadata: 

  name: mysql-db-svc

  namespace: external

spec: 
  type: ExternalName
  ExternalName: 172.17.0.2
Run Code Online (Sandbox Code Playgroud)

...我尝试使用端口3306上的“ mysql-db-svc”从pod内部连接到数据库,但无济于事。如果尝试从Pod内对地址“ mysql-db-svc”进行CURL处理,它将无法解析主机名。

有人可以建议沮丧的新手吗?

kubernetes minikube

5
推荐指数
1
解决办法
5067
查看次数

com.mongodb.MongoSocketOpenException:异常打开套接字(MongoDB,Docker)

我尝试使用docker image启动我的应用程序(Spring Boot + Spring Cloud + Eureka + MongoDB),但我无法连接到MongoDB.

例外:

exception "com.mongodb.MongoSocketOpenException: Exception opening socket."
Run Code Online (Sandbox Code Playgroud)

我用execute命令启动我的应用程序:docker-compose up --build

Docker日志:

在此输入图像描述

application.yml:

# Spring properties
spring:
  application:
    name: car-service
  data:
    mongodb.host: localhost
    mongodb.port: 32769
    mongodb.uri: mongodb://localhost/test
    mongo.repositories.enabled: true


# Discovery Server Access
eureka:
    client:
      serviceUrl:
        defaultZone: http://localhost:8761/eureka/

# HTTP Server (Tomcat) Port
server: 
  port: 2220

error:
  whitelabel:
    enabled: false
Run Code Online (Sandbox Code Playgroud)

泊坞窗,compose.yml:

eureka:
  build: ./eureka-discovery-service
  ports:
    - "8761:8761"

mongodb:
  image: mongo:3.0.4
  ports:
    - "32769:32769"

postgresql:
  image: postgres:9.6.1
  ports:
    - "32770:32770"

gateway-service:
  build: …
Run Code Online (Sandbox Code Playgroud)

java mongodb spring-boot netflix-eureka docker-compose

4
推荐指数
2
解决办法
2万
查看次数