Python 烧瓶在使用入口的Minikube垃圾连接上的应用

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

我有一个在端口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
  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"