Как интерфейс может взаимодействовать с бэкэндом, если каждый из них находится на отдельном модуле и хосте в kubernetes? - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь подключить простое приложение для эмуляции контейнера веб-интерфейса в одном модуле на одном хосте, который отправляет запрос другому контейнеру внутреннего интерфейса в другом модуле на другом хосте.Этот кластер был создан kops на AWS.

Службы созданы правильно, и я могу получить доступ к службе внешнего интерфейса по умолчанию по URL-адресу LB, созданному службой внешнего интерфейса.Тем не менее, запрос / приветствие, которое вызывает backend, зависает и со временем завершается с ошибкой 500.

Я проверил логи, но они не показывают ничего полезного.Я пропускаю что-нибудь, что мешало бы стручкам общаться?

enter image description here

sample-genericserver "frontend"

@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

greeter "backend"

@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

1 Ответ

0 голосов
/ 14 февраля 2019

Благодаря ответу Дэвида я смог добавить номер порта к вызывающему URL, и бэкэнд-сервис смог правильно ответить.

r = requests.get('http://sample-greeter:8090')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...