我尝试在GCP上部署我的应用程序。我在Vuejs中有一个前端,有一个Flask和Postgre数据库的api
一切都部署在GCP的Kubernetes集群中。 我可以毫无问题地访问我的前端,但是我无法使用api,我的502错误。 我认为我的配置有误。 这是我的配置:
**flask-service.yml**
apiVersion: v1
kind: Service
metadata:
name: flask
labels:
service: flask
spec:
type: NodePort
selector:
app: flask
ports:
- protocol: TCP
port: 5000
targetPort: 5000
vue-service.yml文件
**vue-service.yml**
apiVersion: v1
kind: Service
metadata:
name: vue
labels:
service: vue
spec:
type: NodePort
selector:
app: vue
ports:
- protocol: TCP
port: 8080
targetPort: 8080
ingress.yml文件
ingress.yml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
spec:
rules:
- http:
paths:
- path: /*
backend:
serviceName: vue
servicePort: 8080
- path: /api/*
backend:
serviceName: flask
servicePort: 5000
我的flask应用程序已与gunicord一起部署
gunicorn -b 0.0.0.0:5000 manage:app
你知道我在哪里犯错了吗?我是kubernetes的初学者
这是我的Dockerfile
FROM python:3.8.1-slim
# install netcat
RUN apt-get update && \
apt-get -y install netcat && \
apt-get clean
# set working directory
WORKDIR /usr/src/app
# add and install requirements
RUN pip install --upgrade pip
RUN pip install -U gunicorn
COPY ./requirements.txt /usr/src/app/requirements.txt
RUN pip install -r requirements.txt
# add entrypoint.sh
COPY ./entrypoint.sh /usr/src/app/entrypoint.sh
RUN chmod +x /usr/src/app/entrypoint.sh
# add app
COPY . /usr/src/app
# run server
CMD ["/usr/src/app/entrypoint.sh"]
还有我的入口点。sh
echo "Waiting for postgres..."
while ! nc -z postgres 5432; do
sleep 0.1
done
echo "PostgreSQL started"
gunicorn -b 0.0.0.0:5000 manage:app
再进行一次编辑。在GCP中,当我检查后端服务时,有3个后端,其中一个不起作用 但是为什么我有3个后端?我应该有两个否(烧瓶和Vue)吗?
我检查时,有2个使用Flask的后端服务,其中一个不起作用
The backend services (flask) with problems
the other backend services (flask)
我在GCP中的Flask Image日志显示错误。你知道为什么吗?
答案 0 :(得分:1)
我创建了解决方案。我的入口出现问题,我忘了添加一个入口控制器。 (我对Ingress Controler一无所知...)
现在,我添加了一个Nginx Ingress Controler,一切正常!