我是 Kube 的初学者,我正在尝试连接 2 个不同的前端(具有不同的 DNS 名称) 以及我的 Kube 集群上的 postgres 数据库。
示例: 前面 1 = test1.mysite.com 前面 2 = test2.mysite.com
两个 DNS -> 162.145.23.123
我希望我的 postgres 服务位于同一个 IP 上
正面1
kind: Deployment
apiVersion: apps/v1
metadata:
name: front-app
labels:
app: front-app
spec:
selector:
matchLabels:
app: front-app
replicas: 1
template:
metadata:
labels:
app: front-app
spec:
containers:
- name: front-app
image: nginx
ports:
- containerPort: 80
---
kind: Service
apiVersion: v1
metadata:
name: front-service
spec:
selector:
app: front-app
ports:
# Default port used by the image
- port: 80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: demo-localhost
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx
rules:
- host: test1.mysite.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: front-service
port:
number: 80
status:
loadBalancer:
ingress:
- ip: 162.145.23.123
前2
kind: Deployment
apiVersion: apps/v1
metadata:
name: front-app2
labels:
app: front-app2
spec:
selector:
matchLabels:
app: front-app2
replicas: 1
template:
metadata:
labels:
app: front-app2
spec:
containers:
- name: front-app2
image: nginx
ports:
- containerPort: 80
---
kind: Service
apiVersion: v1
metadata:
name: front-service2
spec:
selector:
app: front-app2
ports:
# Default port used by the image
- port: 80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: demo-localhost2
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx
rules:
- host: test2.mysite.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: front-service2
port:
number: 80
status:
loadBalancer:
ingress:
- ip: 162.145.23.123
Postgres
apiVersion: v1
kind: Service
metadata:
name: hello-pg
labels:
app: hello-pg
spec:
type: LoadBalancer
ports:
- port: 5432
targetPort: 5432
protocol: TCP
selector:
app: hello-pg
---
apiVersion: v1
kind: ConfigMap
metadata:
name: db-secret-credentials
labels:
app: postgresdb
data:
POSTGRES_DB: testDB
POSTGRES_USER: testUser
POSTGRES_PASSWORD: testPassword
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-pg-deployment
labels:
app: hello-pg
spec:
replicas: 1
selector:
matchLabels:
app: hello-pg
template:
metadata:
labels:
app: hello-pg
spec:
containers:
- name: hello-pg
image: postgres
ports:
- containerPort: 5432
envFrom:
- configMapRef:
name: db-secret-credentials
感谢您的帮助
根据您的入口注释,我可以看到您正在使用
ingress nginx
控制器。因此,如果您想通过与应用程序相同的负载均衡器公开数据库,则需要使用 ConfigMap
流量路由配置添加额外的 TCP
对象,并修改现有的 Service
该配置 LB
。
您可以在ingress nginx文档中找到有关此类配置的更多信息。