我有两种服务(客户端和服务器)两种类型的负载均衡器。我想让客户端服务与服务器服务对话。我如何以编程方式进行(通过 yaml 文件等)。
更明确地,客户端运行一个 python 代码,它需要访问服务器的外部 IP。但是我只知道服务器服务名称而不是外部 ip。
当然,解决此问题的一种方法是首先启动服务器并获取外部 ip 并将其添加到客户端的 yaml 文件中。我正在寻找解决方案,比如只知道服务名称就可以访问外部 ip。
客户端和服务器驻留在同一个 Kubernetes 集群中。
Client.yaml客户端运行一个网络服务器,如果有人点击了网络服务器公布的 url,demo.py
应该调用服务器的服务。我正在考虑一种以external-ip
编程方式在此处获取服务器的方法,但是我愿意接受建议。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name:client-deployment
spec:
replicas: 3
template:
metadata:
labels:
app: client
spec:
containers:
- name: client-container
image: client_image:latest
command:
- "python"
- "/root/demo.py"
ports:
- containerPort: 5000
---
apiVersion: v1
kind: Service
metadata:
labels:
run: client-service
name: client-service
spec:
ports:
- port: 5000
targetPort: 5000
selector:
app: inception-client
type: LoadBalancer
Server.yaml:它在端口 9000 上公开一个服务,客户端应该调用该服务。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: server-deployment
spec:
replicas: 3
template:
metadata:
labels:
app: server
spec:
containers:
- name: server-container
image: server_image:latest
command:
- <Command to start a server which listens on port 9000>
ports:
- containerPort: 9000
---
apiVersion: v1
kind: Service
metadata:
labels:
run: server-service
name: server-service
spec:
ports:
- port: 9000
targetPort: 9000
selector:
app: server
type: LoadBalancer