networking - 如何使入口连接到我网络中的 pod
问题描述
我的k8s主节点有公网IP,工作节点部署在私网。工作节点可以连接到主节点,但主节点无法连接到工作节点。
我测试过可以通过kubectl部署一个pod,运行在worker节点和master上的pod可以查看pod状态。但是当我部署一个入口并访问主节点上的入口时,流量无法进入工作节点。
我使用法兰绒网络。
我试过使用 ssh 隧道,但很难管理
不知道有没有什么建议,谢谢。
解决方案
如果您部署在云环境中,最可能的原因是防火墙设置或路由配置不正确。但是,入口配置错误有时也可能看起来像基础设施问题。
Ingress 会将您的请求重定向到它注册的不同服务。端点健康也受到监控,请求只会发送到活动和健康的端点。我的故障排除流程如下:
在您的 url 上点击一个未注册的路径,并检查您是否获得了默认的后端响应。如果不是,那么您的入口控制器可能没有正确设置(无论是域名、访问规则还是只是配置)。如果是,那么您的入口控制器应该正确设置,这是入口定义或后端的问题。
尝试在您的网址上点击您的注册路径。如果您收到 504 网关超时,则您的端点正在接受请求,但未正确响应。您可以按照目标 pod 日志确定其行为是否正常。
如果您收到 503 Service Unavailable,则您的服务可能已关闭或被入口视为不健康。在这种情况下,您绝对应该验证您的 pod 是否正常运行。
- 检查您的 nginx-ingress-controller 日志以查看请求是如何被重定向的以及内部响应是什么。
推荐阅读
- swift - 如何在 SwiftUI 中获取实际视图渲染的大小和位置?
- uwp - 如何并行编译/构建和打包 MSIX 项目?
- c# - 如何阻止我的角色在我的脚本中无限跳跃?
- python - 硒的网络抓取问题
- spring-boot - 带有 Spring Boot 的 Kafka-Streams 示例
- docker - Docker 使用主机的 DNS,而不是 /etc/resolv.conf 中提到的 DNS
- r - 如何在R中拆分字符串并保存为数据框?
- api - EC2 安全组上的安全前端 React 和后端 API 不起作用
- database - 数据框与表格
- java - com.microsoft.sqlserver.jdbc.SQLServerException:在获取结果集的值时连接已关闭