我正在尝试在开发环境中的一个Kubernetes集群(客户端和服务器)中连接2个Pod。
apiVersion: v1
kind: Service
metadata:
name: client-node-port spec:
type: NodePort
ports:
- port: 4000
targetPort: 4000
nodePort: 31515
selector:
component: nri
服务器将是
apiVersion: v1
kind: Service
metadata:
name: server-node-port
spec:
type: NodePort
ports:
- port: 1114
targetPort: 1114
nodePort: 30000
selector:
component: nri
我可以成功访问该网页,但是它似乎能够连接到服务器。 (服务器在1114(运行)上运行)和客户端(在4000上运行)
如何连接它们?
答案 0 :(得分:2)
问题是两个服务的selector
相同。当您尝试使用任何一种服务时,它会随机将您路由到“客户端”或“服务器”窗格。
示例:
您使用nodeport:31515
,因此服务为client-node-port
。
您使用nodeport:30000
,因此服务为server-node-port
。
要解决该问题,您需要在“客户端”和“服务器”窗格中添加其他标签,例如分别为app: client
和app: server
:
...
metadata:
name: client
labels:
component: nri
app: client #Here is the new label
...
---
...
metadata:
name: server
labels:
component: nri
app: server #Here is the new label
...
然后,在服务上添加这些标签:
apiVersion: v1
kind: Service
metadata:
name: client-node-port
spec:
type: NodePort
ports:
- port: 4000
targetPort: 4000
nodePort: 31515
selector:
component: nri
app: client #Here is the new label
---
apiVersion: v1
kind: Service
metadata:
name: server-node-port
spec:
type: NodePort
ports:
- port: 1114
targetPort: 1114
nodePort: 30000
selector:
component: nri
app: server #Here is the new label