Kubernetes GCE Ingress 找不到服务

Kubernetes GCE Ingress 找不到服务

我之前为各种部署、服务和入口创建的 yaml 文件已经创建了工作设置。我尝试修复入口的一个小问题,但无法恢复到工作状态。

我的 Pod 启动时没有错误,服务也正常运行。日志中没有健康检查条目,因此问题似乎在于如何通过名称联系服务。当创建入口时,我在 GKE 界面中看到此事件(使用 kubectl describe 时看不到):

Error during sync: error while evaluating the ingress spec: could not find service "default/web";

服务确实已启动:

NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
elasticsearch   ClusterIP   None            <none>        9200/TCP,9300/TCP            5h
kubernetes      ClusterIP   10.31.x.x       <none>        443/TCP                      5h
redis-master    ClusterIP   10.31.x.x       <none>        6379/TCP                     5h
web             NodePort    10.31.x.x       <none>        80:30110/TCP,443:31404/TCP   5h
websocket       NodePort    10.31.x.x       <none>        28080:30186/TCP              5h

我尝试过重启服务并改用 nginx ingress。我唯一剩下的想法就是销毁集群。就好像 k8s 内部 DNS 坏了一样。

答案1

对于运行 Rails 应用的 Web 服务,我将端口 80 和 443 都指向 3000。我force_ssl在 Rails 配置中启用了此功能。我原以为这只会将 http 请求重定向到 https,但结果却重置了您正在使用的端口。如果要启用 force_ssl,则需要指定端口: https://github.com/rails/rails/issues/19820

由于端口 3000 不再响应 200,因此该服务被标记为不健康,尽管其他方面没有任何问题。

相关内容