azure - K8s azure VM 节点 - 可以从主节点 ping 工作节点,但无法 ping 工作节点上的 pod
问题描述
我在我的工作节点上启动并运行了一个简单的 pod,我试图从我的主节点 ping。我得到 100% 的数据包丢失。
什么在起作用?
- 可以从主节点 ping 工作节点本身。
- 工作节点内部的 pod 可以从工作节点内部 ping 通。
什么不工作?
- 主节点尝试 ping 工作节点的 pod。
我的看法
我认为主节点上发生了印花布错误配置,因为主节点不太了解 Pod 的 IP。
到 pod IP 的 tracepath 的结果
masternode@Master:~$ tracepath 192.168.171.67
1?: [LOCALHOST] pmtu 1440
1: no reply
2: no reply
3: no reply
请帮忙。
解决方案
无法从控制/数据平面节点访问 Kubernetes pod 网络。您可以访问任何 Pod,包括彼此之间的控制平面 Pod,但不能访问主机上的任何内容。
文档中引用的 Kubernetes 网络基础知识:
- 一个节点上的 Pod 可以在没有 NAT 的情况下与所有节点上的所有 Pod 通信
- 节点上的代理(例如系统守护进程、kubelet)可以与该节点上的所有 pod 通信。-- 请注意,例如,您可以使用 docker 执行此操作,但不能使用 pod 网络。
此外,来自文档:
- Pod 中的容器使用网络通过环回进行通信。
- 集群网络提供不同 Pod 之间的通信。
- Service 资源允许您公开在 Pod 中运行的应用程序,以便从集群外部访问。
- 您还可以使用服务发布服务,仅供集群内部使用。
推荐阅读
- python - Python 错误:列表索引必须是整数或切片,而不是 str
- python - 使用python写入带有多色文本的工作表
- android - 拍摄视频的屏幕截图显示空白屏幕
- django-rest-framework - "detail": "您无权执行此操作。"
- pine-script - TradingView [PINE]:我可以通过设置动态更改研究覆盖吗?
- autosys - 我可以在 autosys 中创建扩展日历时分配 run_calendar 参数吗
- node.js - 有关 NodeJS 应用程序的错误代码 302 的问题
- .net - 高棉 Unicode 字体在水晶报告中不起作用
- bash - 如何将多个 Ansible 变量添加到 csv 文件的单行中?
- dll - 有没有办法让我的 .NET Blazor WASM 应用程序不被大多数防火墙阻止?