下午好,我有一个问题,我是Kubernetes的新手,我需要连接到集群之外的数据库,我只能使用hostNetwork = true连接到该数据库,但是,不建议这样做,在这种情况下,有一种与外部数据库通信的方法吗?
我将当前使用的Yaml留给您,我的吊舱中包含一个可与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
任何人都知道如何与外部DB通信吗?这不是云集群,而是OnPremise
答案 0 :(得分:1)
hostNetwork
参数用于从集群外部访问Pod,您不需要。
集群内部的Pod可以进行外部通信,因为它们已被NAT。如果没有,则外部原因可以阻止它,例如防火墙或缺少路由。
更快找到它的方法是ssh到您的Kubernetes集群节点之一并尝试
telnet 11.160.9.18 1558
无论如何,该IP地址似乎是公共地址,因此您必须检查公司防火墙的恕我直言