使用 angular http 客户端和 flask 的 Kubernetes 微服务开发不起作用
Kubernetes Microservice development with angular http client and flask doens't work
我有一个问题,我不知道该怎么做。我想在 Linode 上使用 kubernetes 设置一个基于微服务的应用程序。
我有一个 Angluar 应用程序(运行ning 在同一个集群和同一个节点上)已经部署在那里,它工作正常,我想从这个 angular 应用程序发送一个请求到 python flask 应用程序通过 angular http 客户端。
我的微服务(烧瓶)yaml 文件如下所示:
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend
spec:
replicas: 1
selector:
matchLabels:
app: backend
template:
metadata:
labels:
app: backend
spec:
containers:
- name: backend
image: imageName (unfortunately, I am not allowed to show the real image name, sorry)
ports:
- containerPort: 5000
---
apiVersion: v1
kind: Service
metadata:
name: backend-service
spec:
selector:
app: backend
ports:
- protocol: TCP
port: 5000
targetPort: 5000
在 Angular 中,我使用 Angular httpClient 向此 url:
发送请求
export const environment = {
production: true,
backendUrl: 'http://backend-service'
};
我也试过用Linode给的ip地址。请求未到达烧瓶应用程序。一切看起来都像这样,没有任何变化(我在调试模式下使用 flask 进行监控):
Serving Flask app "app.py"
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
我的 Ingress 是:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: app-ingress
spec:
rules:
- host: Linode host url
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: angular-app-service
port:
number: 80
- path: /backend-service
pathType: Prefix
backend:
service:
name: backend-service
port:
number: 5000
我不知道我的错误是什么。当我 运行 我系统上容器中的应用程序一切正常。我确定这是一个愚蠢的错误,但我现在无法识别它。如果这个问题已经被问过很多次了,我很抱歉,但直到现在我才找到解决方案。非常感谢。
您将需要 ingress 设置。这将允许从您的 angular 应用进入集群的外部流量到达后端。
我有一个问题,我不知道该怎么做。我想在 Linode 上使用 kubernetes 设置一个基于微服务的应用程序。 我有一个 Angluar 应用程序(运行ning 在同一个集群和同一个节点上)已经部署在那里,它工作正常,我想从这个 angular 应用程序发送一个请求到 python flask 应用程序通过 angular http 客户端。
我的微服务(烧瓶)yaml 文件如下所示:
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend
spec:
replicas: 1
selector:
matchLabels:
app: backend
template:
metadata:
labels:
app: backend
spec:
containers:
- name: backend
image: imageName (unfortunately, I am not allowed to show the real image name, sorry)
ports:
- containerPort: 5000
---
apiVersion: v1
kind: Service
metadata:
name: backend-service
spec:
selector:
app: backend
ports:
- protocol: TCP
port: 5000
targetPort: 5000
在 Angular 中,我使用 Angular httpClient 向此 url:
发送请求 export const environment = {
production: true,
backendUrl: 'http://backend-service'
};
我也试过用Linode给的ip地址。请求未到达烧瓶应用程序。一切看起来都像这样,没有任何变化(我在调试模式下使用 flask 进行监控):
Serving Flask app "app.py"
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
我的 Ingress 是:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: app-ingress
spec:
rules:
- host: Linode host url
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: angular-app-service
port:
number: 80
- path: /backend-service
pathType: Prefix
backend:
service:
name: backend-service
port:
number: 5000
我不知道我的错误是什么。当我 运行 我系统上容器中的应用程序一切正常。我确定这是一个愚蠢的错误,但我现在无法识别它。如果这个问题已经被问过很多次了,我很抱歉,但直到现在我才找到解决方案。非常感谢。
您将需要 ingress 设置。这将允许从您的 angular 应用进入集群的外部流量到达后端。