入口不会路由到/(kubernetes,gcp)以外的其他地址

时间:2019-11-18 15:57:36

标签: docker flask kubernetes google-cloud-platform

因此,我通过遵循本教程https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/

来尝试建立并运行基本的gcp kubernetes集群。

但是,我一直坚持使用/以外的任何路径为图像创建入口路径,但我尝试了很长时间,但我认为这里可能遗漏了一些明显的东西,因为我实际上开始发疯了。 / p>

对于上下文,我使用的是Google云平台,我构建了一个基本的flask应用程序,对其进行了dockerize并将其保存在Google容器注册表中。 我为烧瓶映像创建了一个基本部署:

apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: flask-app-tutorial
  labels:
    name: flask-app-tutorial
spec:
  replicas: 1
  selector:
    matchLabels:
      name: flask-app-tutorial
  template:
    metadata:
      name: flask-app-tutorial
      labels:
        name: flask-app-tutorial
    spec:
      containers:
        - name: flask-app-tutorial
          image: gcr.io/my-project/flask-app:v1
          ports:
            - containerPort: 8080
          resources:
            requests:
              memory: 256Mi
            limits:
              memory: 512Mi
          env:
            - name: DEBUG_MODE
              value: "1"

然后我使用以下命令行公开此部署:

kubectl expose deployment flask-app-tutorial --target-port=8080 --type=NodePort

然后创建服务。

然后,当我尝试通过此入口公开路线时:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: example-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: flask-app-tutorial
          servicePort: 8080
      - path: /server/*
        backend:
          serviceName: flask-app-tutorial
          servicePort: 8080

已创建入口,并且一段时间后ip-address /可以访问所有后端,并且这些后端都正常,并会请求相应的服务器:

curl -I ip-address
HTTP/1.1 200 OK
Server: gunicorn/19.9.0
Date: Mon, 18 Nov 2019 15:45:23 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 12
Via: 1.1 google

但是ip-address / server /给我一个404:

curl -I ip-address/server/
HTTP/1.1 404 NOT FOUND
Server: gunicorn/19.9.0
Date: Mon, 18 Nov 2019 15:46:06 GMT
Content-Type: text/html
Content-Length: 233
Via: 1.1 google

我在某处读到应该以某种方式涉及到入口控制器,我真的不明白为什么,因为当我尝试路由同一台/ server但使用另一个映像(例如,hashicorp / http-echo)时,一切正常。

flask应用程序没什么特别的,它是一个基本的问候世界: https://gist.github.com/pyk/f9c183466062e8ff63efaa46e7c5485f#file-app-py https://gist.github.com/pyk/51a7db451f2ab66d9764df04cfb0222b#file-config-py

任何建议都是值得欢迎的,因为我花了很多时间试图找出问题所在,但我并没有像您想象的那样具有发展背景。

提前谢谢!

0 个答案:

没有答案