Я создал приложение для колб, которое я хотел бы добавить к входу в Kubernetes. В настоящее время у меня есть 2 вопроса, которые я не могу понять:
- Чтобы приложение фляги могло обрабатывать несколько запросов, я подумала, что добавлю gunicorn. Нужно ли мне это, или я могу смягчить это, используя какое-то автоматическое горизонтальное масштабирование и входной слой маршрутизации обрабатывает это? Я новичок в Kubernetes, и, возможно, решение проще, чем то, что я пробую ниже.
Предполагая, что мне нужен оружейный рог, я продолжил и добавил его в докер для колб. Проблема, с которой я столкнулся, заключается в том, что я теперь получаю 502 Bad Gateway Error nginx, и журнал модуля не напечатал никаких ошибок. Если я создаю службу балансировки нагрузки вместо кластера IP, который я использую с входом, приложение фляги с единорогом работает нормально, точно так же, как приложение фляги на входе без без добавления gunicorn. Я понятия не имею, почему, следовательно, пишу этот вопрос. Dockerfile устанавливает все зависимости для запуска flask и завершается с:
EXPOSE 8080
CMD ["gunicorn", "--config", "/flaskapp/gunicorn_config.py", "run:app"]
Я настроил свой вход следующим образом:
apiVersion: v1
items:
- apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.bluemix.net/client-max-body-size: 128m
ingress.bluemix.net/rewrite-path: serviceName=flask-service rewrite=/;
spec:
rules:
- host: <my-domain>
http:
paths:
- backend:
serviceName: flask-service
servicePort: 8080
path: /flask/
tls:
- hosts:
- <my-domain>
secretName: <my-secret>
status:
loadBalancer:
ingress:
- ip: <ip>
Сервис выглядит так:
apiVersion: v1
kind: Service
metadata:
name: flask-service
labels:
app: flask-service
spec:
type: ClusterIP
ports:
- port: 8080
protocol: TCP
selector:
app: flask
Развертывание также очень просто с указанием правильного образа и порта.
Учитывая, что мне нужен gunicorn (или аналогичный), как я могу устранить ошибку 502 Bad Gateway, которую я получаю?