首页 > 解决方案 > 没有地址的 EKS 入口 - 尝试测试我的 EKS 集群

问题描述

我有一个小问题,没有运气就花了这么多时间。

我有一个 EKS 集群,我在其中创建了 2 个部署,每个部署都有自己的服务。

我的 2 个应用程序是一个 tensorflow 服务器和一个烧瓶应用程序,它使用专用于它的服务的 IP 在 tf 服务器上运行查询。

现在我想从外界访问在 2 个之一上运行的 Flask 应用程序。所以我创建了一个入口,但是当我尝试“kubectl get ingress”时它根本没有地址。

NAME          HOSTS   ADDRESS   PORTS   AGE
nlp-ingress   *                 80      4h5m

我还在 Flask 容器的日志中注意到以下内容

 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 343-385-569
192.168.14.156 - - [16/Jul/2020 17:13:24] code 400, message Bad request syntax ('\x16\x03\x01\x00{\x01\x00\x00w\x03\x03')
192.168.14.156 - - [16/Jul/2020 17:13:24] "[35m[1m\00{\00\00w[0m" HTTPStatus.BAD_REQUEST -
192.168.14.156 - - [16/Jul/2020 17:13:24] "[37mGET / HTTP/1.1[0m" 200 -
192.168.14.156 - - [16/Jul/2020 17:13:24] "[37mGET / HTTP/1.1[0m" 200 -

我的入口 yaml 文件如下:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: nlp-ingress
spec:
  backend:
    serviceName: nlp-client-service
    servicePort: 5000

我的 Flask 部署和服务的 yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nlp-client-deployment
spec:
  replicas: 1
  selector:
    matchLabels: 
      app: nlp-client
  template:
    metadata:
      labels:
        app: nlp-client
    spec:
      containers:
      - name: nlp-client-container
        image: myimage:latest
        command:
          - "python"
          - "main.py"
          - "--server"
          - "nlp-server-service:8501"
        ports:
        - containerPort: 5000
---
apiVersion: v1
kind: Service
metadata:
  labels:
    run: nlp-client-service
  name: nlp-client-service
spec:
  ports:
  - port: 5000
    targetPort: 5000
  selector:
    app: nlp-client
  type: LoadBalancer

我的目标是在开发过程中测试我的集群。

任何帮助是极大的赞赏。

标签: amazon-web-servicesflaskkuberneteskubernetes-ingressamazon-eks

解决方案


要使入口正常工作,您需要像其中之一这样的入口控制器。最常见的是Nginx 入口控制器

现在,如果您在同一个集群上运行这两个应用程序,您甚至不需要在您的 TF 服务器上设置一个 Ingress,一个普通的Service on port5000就可以了,假设这是您的TF 服务器正在侦听的端口。

如果您仍然想使用 Ingress,您仍然可以使用它,但路径会有点奇怪,这意味着请求将如何离开集群然后返回集群。


推荐阅读