amazon-web-services - 没有地址的 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
我的目标是在开发过程中测试我的集群。
任何帮助是极大的赞赏。
解决方案
要使入口正常工作,您需要像其中之一这样的入口控制器。最常见的是Nginx 入口控制器。
现在,如果您在同一个集群上运行这两个应用程序,您甚至不需要在您的 TF 服务器上设置一个 Ingress,一个普通的Service on port5000
就可以了,假设这是您的TF 服务器正在侦听的端口。
如果您仍然想使用 Ingress,您仍然可以使用它,但路径会有点奇怪,这意味着请求将如何离开集群然后返回集群。
推荐阅读
- mysql - 在 CentOS 7.7 上初始化 MariaDB 10.4.12
- tensorflow - AttributeError:模块“tensorflow”没有属性“get_default_graph”
- mongodb - MongoDB $gte 无法匹配嵌套文档的字段
- sql - 在存储过程中正确设置 CONCAT_NULL_YIELDS_NULL 和 ANSI_WARNINGS ON
- git - 为什么 git merge 会在源分支中创建提交
- cupy - 切片 300MB CuPy 数组比 NumPy 慢约 5 倍
- c# - 如何在 aws-sdk-net DynamoDb 中模拟 BatchWrite 对象
- matlab - 在远程服务器上运行 matlab 脚本
- ruby-on-rails - 使用 Rails + Webpacker + Typescript + Angular 包含材料设计时库代码中的语法错误
- c - 当所有输入都正确时,MPFR 给出 NaN 答案