我正在尝试连接一个简单的应用程序,以模拟一个主机上一个容器中的前端容器,从而向另一个主机上另一个容器中的另一个后端容器发出请求。该集群是由kops在AWS上创建的。

服务已正确创建,并且我能够通过前端服务创建的LB URL到达默认的前端服务。但是,调用后端的请求/ greet挂起,并最终因500错误而超时。

我检查了日志,但没有显示任何有用的信息。我是否缺少任何阻止 pod 进行交流的内容?

docker - 如果前端和后端位于kubernetes内的单独Pod和主机中,前端如何与后端通信?-LMLPHP

样本通用服务器“前端”

@app.route('/greet')
def greet():
    r = requests.get('http://sample-greeter')
    print(r.content)
    return r.content

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=int("5000"), debug=True)

//frontend
kubectl run sample-genericserver --image=genericserver --replicas=1 --port=5000
kubectl expose deployment sample-genericserver --port=5000 --type=LoadBalancer

迎接“后端”
@app.route('/')
def hello_world():
    return 'Greetings from BackendService'

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=int("8090"), debug=True)


//backend
$ kubectl run sample-greeter --image=greeter --replicas=1 --port=8090
$ kubectl expose deployment sample-greeter --port=8090

最佳答案

感谢David的回答,我能够将端口号添加到 call url中,后端服务能够正确响应。

r = requests.get('http://sample-greeter:8090')

关于docker - 如果前端和后端位于kubernetes内的单独Pod和主机中,前端如何与后端通信?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54662308/

10-13 03:31