下午好,我有一个问题,我是Kubernetes的新手,我需要连接到集群之外的数据库,我只能使用hostNetwork = true连接到该数据库,但是,不建议这样做情况下是否有一种与外部数据库通信的方法?
我将当前使用的Yaml留给您,我的 pods 中包含一个可与Spring Boot配合使用的容器
apiVersion: apps/v1
kind: Deployment
metadata:
name: find-complementary-account-info
labels:
app: find-complementary-account-info
spec:
replicas: 2
selector:
matchLabels:
app: find-complementary-account-info
template:
metadata:
labels:
app: find-complementary-account-info
spec:
hostNetwork: true
dnsPolicy: Default
containers:
- name: find-complementary-account-info
image:find-complementary-account-info:latest
imagePullPolicy: IfNotPresent
resources:
limits:
memory: "350Mi"
requests:
memory: "300Mi"
ports:
- containerPort: 8081
env:
- name: URL_CONNECTION_BD
value: jdbc:oracle:thin:@11.160.9.18:1558/DEFAULTSRV.WORLD
- name: USERNAME_CONNECTION_BD
valueFrom:
secretKeyRef:
name: credentials-bd-pers
key: user_pers
- name: PASSWORD_CONNECTION_BD
valueFrom:
secretKeyRef:
name: credentials-bd-pers
key: password_pers
key: password_pers
---
apiVersion: v1
kind: Service
metadata:
name: find-complementary-account-info
spec:
type: NodePort
selector:
app: find-complementary-account-info
ports:
- protocol: TCP
port: 8081
targetPort: 8081
nodePort: 30020
任何人都有一个想法如何与外部数据库进行通信?这不是云集群,而是OnPremise 最佳答案
hostNetwork
参数用于从集群外部访问Pod,您不需要这样做。
群集内部的Pod可以进行外部通信,因为它们已被NAT。如果不是这样,则外部因素可以阻止它,例如防火墙或缺少路由。
找到它的更快方法是SSH到您的Kubernetes集群节点之一并尝试
telnet 11.160.9.18 1558
无论如何,该IP地址似乎是公共(public)地址,因此您必须检查公司防火墙的恕我直言关于docker - 如何与Kubernetes集群外部的DB通信,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64377934/