- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过Ingress-nginx和Google云负载均衡器公开GKE集群中的mlflow模型。
各个部署的服务配置如下所示:
apiVersion: v1
kind: Service
metadata:
name: model-inference-service
labels:
app: inference
spec:
ports:
- port: 5555
targetPort: 5555
selector:
app: inference
使用
kubectl port-forward service/model-inference-service 5555:5555
将此服务转发到localhost时,我可以使用以下
script将测试图像发送到api端点,从而成功查询模型。
http://127.0.0.1:5555/invocations
。
model-inference-service
。
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm install my-release ingress-nginx/ingress-nginx
入口的配置如下(我怀疑错误一定在这里吗?):
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
# nginx.ingress.kubernetes.io/rewrite-target: /invocations
name: inference-ingress
namespace: default
labels:
app: inference
spec:
rules:
- http:
paths:
- path: /invocations
backend:
serviceName: model-inference-service
servicePort: 5555
入口 Controller Pod运行成功:
my-release-ingress-nginx-controller-6758cc8f45-fwtw7 1/1 Running 0 3h33m
在GCP控制台中,我可以看到负载均衡器也已成功创建,并且可以获取其IP。
http://34.90.4.0:80/invocations
Traceback (most recent call last):
File "test_inference.py", line 80, in <module>
run()
File "//anaconda3/lib/python3.7/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "//anaconda3/lib/python3.7/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "//anaconda3/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "//anaconda3/lib/python3.7/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "test_inference.py", line 76, in run
print(score_model(data_path, host, port).text)
File "test_inference.py", line 54, in score_model
status_code=response.status_code, text=response.text
Exception: Status Code 502. <html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.19.1</center>
</body>
</html>
在浏览器中访问相同的URL时,它说:
502 Bad Gateway
nginx/1.19.1
入口 Controller 的日志状态:
2020/08/26 16:06:45 [warn] 86#86: *42282 a client request body is buffered to a temporary file /tmp/client-body/0000000009, client: 10.10.0.30, server: _, request: "POST /invocations HTTP/1.1", host: "34.90.4.0"
2020/08/26 16:06:45 [error] 86#86: *42282 connect() failed (111: Connection refused) while connecting to upstream, client: 10.10.0.30, server: _, request: "POST /invocations HTTP/1.1", upstream: "http://10.52.3.7:5555/invocations", host: "34.90.4.0"
2020/08/26 16:06:45 [error] 86#86: *42282 connect() failed (111: Connection refused) while connecting to upstream, client: 10.10.0.30, server: _, request: "POST /invocations HTTP/1.1", upstream: "http://10.52.3.7:5555/invocations", host: "34.90.4.0"
2020/08/26 16:06:45 [error] 86#86: *42282 connect() failed (111: Connection refused) while connecting to upstream, client: 10.10.0.30, server: _, request: "POST /invocations HTTP/1.1", upstream: "http://10.52.3.7:5555/invocations", host: "34.90.4.0"
10.10.0.30 - - [26/Aug/2020:16:06:45 +0000] "POST /invocations HTTP/1.1" 502 157 "-" "python-requests/2.24.0" 86151 0.738 [default-model-inference-service-5555] [] 10.52.3.7:5555, 10.52.3.7:5555, 10.52.3.7:5555 0, 0, 0 0.000, 0.001, 0.000 502, 502, 502 0d86e360427c0a81c287da4ff5e907bc
为了测试入口和负载平衡器是否在原则上工作,我用真正的rest api替换了docker镜像,我要用此
docker image公开该文件,该文件在端口5050和路径
/
上返回“hello world”。我在上面显示的服务和入口 list 中更改了端口和路径(从
/invocations
到
/
),并且在浏览器中访问负载均衡器的ip时可以成功看到“hello world”。
最佳答案
您共享的配置看起来不错。群集环境中一定有某种原因导致此行为。查看Pod到Pod的通讯是否正常。在与Nginx入口 Controller 相同的节点上启动测试容器,并从该容器到目标服务执行curl
。查看是否遇到任何DNS或网络问题。尝试在调用服务时更改主机 header ,看看它是否对此敏感。
关于nginx - GKE配置502错误网关上的Ingress-nginx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63601758/
我有标准 GKE 集群,并且希望将所有正在运行的服务迁移到新的 Autopilot 集群。我研究了官方文档,但没有找到任何如何执行此迁移的信息 最佳答案 目前,此操作无法将 Standard GKE
我最近设置了一个 GKE 自动驾驶仪,但意识到它不支持 cert-manager 所依赖的 webhook。我们必须向 GKE 自动驾驶集群添加/管理 SSL 证书的其他选项是什么? 最佳答案 截至
我在 K8s 1.14.10 上创建了两个单独的 GKE 集群。 VPN access to in-house network not working after GKE cluster upgrad
我注意到我们的 gke 集群系统 pod (gke-metrics-agent) 内存不足。我试图编辑 daemonset yaml 文件以将内存请求增加到 200Mi 并将内存限制增加到 200Mi
我有多个在 GKE 上运行的 kubernetes 集群(假设是 clusterA 和 clusterB) 我想在其中一个集群中运行的应用程序中从 client-go 访问这两个集群(例如,从在 cl
如何将已有的GKE集群改成GKE私有(private)集群?我是否能够根据防火墙规则从 Internet 连接到 Kubectl API,或者我应该有一个堡垒主机吗?我不想实现 Cloud Nat 或
我目前正在运行一个区域性 GKE 集群,并希望迁移到一个新的区域性集群。旧集群有一个带有公共(public) IP 的入口对象,使用谷歌托管证书来终止 HTTPS。 我的迁移计划是: 创建新的区域集群
我们有一个 GKE 集群: 版本为 1.6.13-gke.0 的主节点 2 个版本为 1.6.11-gke.0 的节点池 我们已激活 Stackdriver Monitoring 和 Logging。
从昨天开始,我在 K8s 上遇到了一个奇怪的错误(使用 GKE) 我有一个运行 1 个 pod 的部署。我删除了部署,它用于终止 pod 和使用它的副本集。 但是现在,如果我删除部署,副本集不会被删除
我正在使用 Google 容器引擎。现在我想要在我的集群中使用自动缩放功能。根据文档 GKE 自动调节程序 在 测试版 .我还可以在 中启用自动缩放实例组即管理集群节点。 集群自动缩放器添加/删除节点
我想在Google容器引擎中运行nexus3。 我创建了一个永久磁盘,并配置了以下部署文件: apiVersion: apps/v1beta1 kind: Deployment metadata:
我正在寻找从 kubernetes 中的 pod 捕获日志以用于两个用例: 实时 -> 我正在使用 kubectl logs ---现在 非实时 -> 使用 stackdriver用管道传送到 big
我已经在Google云中创建了具有以下规范的节点端口服务...我创建了防火墙规则,以允许端口'30100'的流量从0.0.0.0/0开始,我已经验证了堆栈驱动程序日志,并且在发生流量时我使用curl或
我注意到我在GKE上部署的服务有些奇怪,我想了解... 当我启动kubectl get services时,我可以看到我的服务EXTRNAL-IP。假设35.189.192.88。那就是我用来访问我的
我最近在优化集群 (GKE) 利用率,两天前我注意到我的节点没有扩大或缩小。自动缩放配置映射处于初始化模式: kubectl describe -n kube-system configmap clu
目前,我可以从GoogleCloudPlatform管理控制台屏幕上获取各种信息,但是将来我希望使用API来获取信息。 获得的信息如下。 Kubernetes Engine>Clusters>Cl
我正在尝试在 GKE 上设置我的应用程序并使用内部负载均衡器进行公共(public)访问。我能够毫无问题地部署集群/负载均衡器服务,但是当我尝试访问负载均衡器的外部 IP 地址时,我得到连接被拒绝,我
默认情况下,可从同一集群访问ClusterIP类型的Kubernetes服务。是否可以将GKE中的服务配置为可从同一VPC访问?例如,同一VPC中的GCE VM可以访问GKE中的服务,但我不想将其公开
GKE 使用 kubenet用于在 VPC 中设置容器接口(interface)和配置路由的网络插件,以便容器可以在不同主机上相互访问。 维基百科定义了一个 overlay作为建立在另一个网络之上的计
首先对于我的问题,我需要谈谈我的环境: Google 基本设置:1x f1-micro 实例,3 个节点 Kubernetes 设置:nginx-ingress-controller、cert-man
我是一名优秀的程序员,十分优秀!