Python 烧瓶在使用入口的Minikube垃圾连接上的应用
我有一个在端口5000上运行python flask应用程序的复制pod。下面是我的配置和详细信息Python 烧瓶在使用入口的Minikube垃圾连接上的应用,python,nginx,flask,kubernetes,minikube,Python,Nginx,Flask,Kubernetes,Minikube,我有一个在端口5000上运行python flask应用程序的复制pod。下面是我的配置和详细信息 [ec2-user@ip-172-31-1-120 ~]$ cat tree_management/application/*.yml apiVersion: apps/v1 kind: Deployment metadata: name: tree-deployment spec: selector: matchLabels: app: tree-management
[ec2-user@ip-172-31-1-120 ~]$ cat tree_management/application/*.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: tree-deployment
spec:
selector:
matchLabels:
app: tree-management
replicas: 1
template:
metadata:
labels:
app: tree-management
spec:
containers:
- name: tree-management
image: tree-management
imagePullPolicy: Never
ports:
- containerPort: 5000
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: tree-ingress
# annotations:
# nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: local.ec.org
http:
paths:
- path: /tree
pathType: Prefix
backend:
service:
name: tree-service
port:
number: 5000
apiVersion: v1
kind: Service
metadata:
name: tree-service
spec:
# type: NodePort
selector:
app: tree-management
ports:
- protocol: TCP
port: 5000
targetPort: 5000
应用程序在pod中运行良好,就像我在pod中执行kubectl exec以点击api url一样,然后它会给我输出。
下面是一些kubectl输出
[ec2-user@ip-172-31-1-120 ~]$ minikube service list
|----------------------|------------------------------------|--------------|---------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|----------------------|------------------------------------|--------------|---------------------------|
| default | kubernetes | No node port |
| default | tree-service | No node port |
| ingress-nginx | ingress-nginx-controller | http/80 | http://192.168.49.2:31893 |
| | | https/443 | http://192.168.49.2:30453 |
| ingress-nginx | ingress-nginx-controller-admission | No node port |
| kube-system | kube-dns | No node port |
| kubernetes-dashboard | dashboard-metrics-scraper | No node port |
| kubernetes-dashboard | kubernetes-dashboard | No node port |
|----------------------|------------------------------------|--------------|---------------------------|
[ec2-user@ip-172-31-1-120 ~]$ kubectl get svc --all-namespaces
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 39h
default tree-service ClusterIP 10.99.136.46 <none> 5000/TCP 14m
ingress-nginx ingress-nginx-controller NodePort 10.96.58.167 <none> 80:31893/TCP,443:30453/TCP 21h
ingress-nginx ingress-nginx-controller-admission ClusterIP 10.103.107.214 <none> 443/TCP 21h
kube-system kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 39h
kubernetes-dashboard dashboard-metrics-scraper ClusterIP 10.98.246.45 <none> 8000/TCP 39h
kubernetes-dashboard kubernetes-dashboard ClusterIP 10.98.103.55 <none> 80/TCP 39h
[ec2-user@ip-172-31-1-120 ~]$ minikube ip
192.168.49.2
也尝试了下面的卷曲组合,但都失败了
curl http://local.ec.org:5000
curl http://local.ec.org
curl http://local.ec.org/tree
curl http://local.ec.org/tree -H local.ec.org
curl http://local.ec.org -H local.ec.org
curl http://local.ec.org/ -H local.ec.org
curl http://local.ec.org/tree -H local.ec.org
curl http://192.168.49.2:5000/tree -H Host:local.ec.org
你能帮我一下吗
更新1
在做了一些配置更改之后,我可以看到我是否点击了下面的URL,然后请求将转到nginx,但不确定它为什么返回502坏网关
curl http://local.ec.org/tree
Nginx上的错误。我不知道为什么nginx无法连接上游
2021/05/24 13:01:58 [error] 447#447: *168693 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.49.1, server: local.ec.org, request: "GET /tree HTTP/1.1", upstream: "http://172.17.0.5:5000/tree", host: "local.ec.org"
192.168.49.1 - - [24/May/2021:13:01:58 +0000] "GET /tree HTTP/1.1" 502 150 "-" "curl/7.61.1" 84 0.001 [default-tree-service-5000] [] 172.17.0.5:5000, 172.17.0.5:5000, 172.17.0.5:5000 0, 0, 0 0.000, 0.000, 0.000 502, 502, 502 dff2ca8a83f9d2237300b6d46f978e43
2021/05/24 13:01:58 [error] 447#447: *168693 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.49.1, server: local.ec.org, request: "GET /tree HTTP/1.1", upstream: "http://172.17.0.5:5000/tree", host: "local.ec.org"
2021/05/24 13:01:58 [error] 447#447: *168693 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.49.1, server: local.ec.org, request: "GET /tree HTTP/1.1", upstream: "http://172.17.0.5:5000/tree", host: "local.ec.org"
你试过
http://192.168.49.2:31893/tree
?这就是minikube实际给你的URL。@coderanger是的,刚试过,但nginx给出了404..Hi@AshifNataliya,我可以在你的ingress nginx控制器中看到。您是否使用了minikube隧道
?如果您想在Minikube中使用ingress控制器,可以通过命令添加:Minikube插件启用ingress
。启用ingress加载项后,特别说明:启用加载项后,请运行“minikube tunnel”,您的ingress资源将在“127.0.0.1”上可用。
。看看类似的问题。@MikołajGłodziak是的,我已经启用了ingress插件。我以前没有运行过minikube隧道。我刚试过,但没用。也尝试了127.0.0.1的curl,但仍然失败502意味着没有现成的豆荚。检查吊舱是否在启动时崩溃。
curl http://local.ec.org/tree
2021/05/24 13:01:58 [error] 447#447: *168693 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.49.1, server: local.ec.org, request: "GET /tree HTTP/1.1", upstream: "http://172.17.0.5:5000/tree", host: "local.ec.org"
192.168.49.1 - - [24/May/2021:13:01:58 +0000] "GET /tree HTTP/1.1" 502 150 "-" "curl/7.61.1" 84 0.001 [default-tree-service-5000] [] 172.17.0.5:5000, 172.17.0.5:5000, 172.17.0.5:5000 0, 0, 0 0.000, 0.000, 0.000 502, 502, 502 dff2ca8a83f9d2237300b6d46f978e43
2021/05/24 13:01:58 [error] 447#447: *168693 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.49.1, server: local.ec.org, request: "GET /tree HTTP/1.1", upstream: "http://172.17.0.5:5000/tree", host: "local.ec.org"
2021/05/24 13:01:58 [error] 447#447: *168693 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.49.1, server: local.ec.org, request: "GET /tree HTTP/1.1", upstream: "http://172.17.0.5:5000/tree", host: "local.ec.org"