【问题标题】:How to connect to external oracle db from kubernetes?如何从 kubernetes 连接到外部 oracle db?
【发布时间】:2019-08-13 06:04:37
【问题描述】:

我正在使用 kubernetes 设置一个新服务器来运行 Spring boot 微服务。如何让 Spring Boot 应用程序连接到外部 oracle 数据库? (数据库ip为170.27.10.10:1521)

Kube Master 的 IP:170.16.163.10 Kube节点的IP:170.16.163.11 Kube Node 可以连接到服务器 db。

我通过命令创建部署:

kubectl run db-deployment --image 170.16.163.30:5000/mcrdb:0.0.4 --replicas=2 --port=8083
kubectl expose deployment db-deployment --type=LoadBalancer --port=8083 --target-port=8083

并创建服务:

kind: "Service"
apiVersion: "v1"
metadata:
  name: "dbdev"
spec:
  ports:
    -
      name: "oracle-db"
      protocol: "TCP"
      port: 1521
      targetPort: 1521 
      nodePort: 0


kind: Endpoints
apiVersion: v1
metadata:
 name: dbdev
subsets:
 - addresses:
     - ip: 170.27.10.10
   ports:
     - port: 1521

并在 application.properties 中配置数据库

spring.datasource.url=jdbc:oracle:thin:@170.27.10.10:1521/vservice
spring.datasource.username=dev_user
spring.datasource.password=dev_pass

微服务无法启动,错误连接到 oracle db。

【问题讨论】:

  • 是否可以从集群网络中访问此数据库?看起来所有范围都是本地的。另外,请记住,在集群内所有地址都可以访问,但在集群外,您可以尝试从 pod 内 ping 它以在无头服务方法之前测试通信。

标签: oracle kubernetes


【解决方案1】:

您可以尝试以下更改

kind: Service
apiVersion: v1
metadata:
  name: dbdev
spec:
  ports:
    -
      name: oracle-db
      protocol: TCP
      port: 1521
      targetPort: 1521 


kind: Endpoints
apiVersion: v1
metadata:
 name: dbdev
subsets:
 - addresses:
     - ip: 170.27.10.10
   ports:
     - port: 1521

application.properties
------------------------
spring.datasource.url=jdbc:oracle:thin:@dbdev:1521/vservice
spring.datasource.username=dev_user
spring.datasource.password=dev_pass

【讨论】:

  • 嗨@Ekambaram,谢谢你的回答。我只是配置,但它不起作用。 docker logs -f ------------------------------- java.sql.SQLRecoverableException: IO Error: Unknown host specified在 oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:673) ~[ojdbc7-12.1.0.2.jar!/:12.1.0.1.0] 在 oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection. java:715) ~[ojdbc7-12.1.0.2.jar!/:12.1.0.1.0]
  • 你能从 pod 内部 ping 170.27.10.10 吗?
  • 您还应该能够从 pod 内部 ping dbdev
  • 我们可以在每个 pod 上使用 oracle db 模式以及 spring bot 应用程序吗
猜你喜欢
  • 2016-06-17
  • 2017-11-08
  • 2019-03-26
  • 2020-06-24
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
  • 2019-12-26
  • 1970-01-01
相关资源
最近更新 更多