如何解决使用 Angular http 客户端和 Flask 进行 Kubernetes 微服务开发不起作用
我遇到了一个问题,我没有更多想法该怎么做。我想在带有 kubernetes 的 Linode 上设置一个基于微服务的应用程序。 我已经在那里部署了一个 Angluar 应用程序(在同一个集群和同一个节点上运行),它工作正常,从这个 angular 应用程序我想通过 angular http 客户端向 python 烧瓶应用程序发送请求。
我的微服务 (flask) 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 应用程序。一切看起来都是这样,没有任何变化(我在调试模式下使用 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)
我的入口是:
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 应用进入集群的外部流量到达后端。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。