gpt4 book ai didi

kubernetes - minikube中的Bad Service/502 Bad Gateway

转载 作者:行者123 更新时间:2023-12-02 12:15:29 26 4
gpt4 key购买 nike

鉴于以下K8s资源(部署/ pods ,服务,入口),当我在浏览器中访问https://staging-micro.local/时,我希望看到该请求回显给我。我得到的是502 Bad Gateway

# describe deployment (trunc. to show only containers)
Containers:
cloudsql-proxy:
Image: gcr.io/cloudsql-docker/gce-proxy:1.11
Port: <none>
Host Port: <none>
Command:
/cloud_sql_proxy
-instances=myproject:us-central1:project-staging=tcp:5432
-credential_file=/secrets/cloudsql/credentials.json
Environment: <none>
Mounts:
/secrets/cloudsql from cloudsql-instance-credentials-volume (ro)
adv-api-django:
Image: gcr.io/google_containers/echoserver:1.9
Port: 8000/TCP
Host Port: 0/TCP
Environment:


# describe service
Name: staging-adv-api-service
Namespace: staging
Labels: app=adv-api
platformRole=api
tier=backend
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app":"adv-api","platformRole":"api","tie...
Selector: app=adv-api-backend,platformRole=api,tier=backend
Type: LoadBalancer
IP: 10.103.67.61
Port: http 80/TCP
TargetPort: 8000/TCP
NodePort: http 32689/TCP
Endpoints: 172.17.0.14:8000,172.17.0.6:8000,172.17.0.7:8000
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>


# describe ingress
Name: staging-api-ingress
Namespace: staging
Address: 10.0.2.15
Default backend: default-http-backend:80 (172.17.0.12:8080)
Rules:
Host Path Backends
---- ---- --------
staging-micro.local
/ staging-adv-api-service:http (172.17.0.14:8000,172.17.0.6:8000,172.17.0.7:8000)

请注意,我在主机(正在运行minikube)上的 192.168.99.100 staging-micro.local中具有条目 /etc/hosts,这是正确的 minikube ip。如果我删除该服务,则单击 staging-micro.local/将提供默认后端的 404 Not Found响应。

我的期望是Ingress将主机名 staging-micro.local和路径 /映射到正在侦听端口80的服务。然后,该服务将请求转发到端口8000上三个选定的容器之一。echoserver容器正在侦听端口8000,并返回以请求为主体的HTTP响应。当然,这不是实际发生的情况。

最后, cloudsql-proxy容器:这点现在不应该涉及,但是我将其包括在内,因为我想在有sidecar容器时验证服务的工作。然后,我可以将 echoserver换出我的主应用程序容器。我已经测试删除了 echoserver,并获得了相同的结果。

日志显示 echoserver正在启动,没有错误。

我无法找到 echoserver的任何更全面的文档,因此我对它正在侦听的端口不是100%的。

最佳答案

我猜您使用了错误的echoserver:1.9目标容器端口,因为默认情况下它在8080端口上响应。看这个example

我已经在8080端口上成功进行了容器响应,并在我的环境中对其进行了测试。

关于kubernetes - minikube中的Bad Service/502 Bad Gateway,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57170975/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com