合作机构:阿里云 / 腾讯云 / 亚马逊云 / DreamHost / NameSilo / INWX / GODADDY / 百度统计
在开发Kata/remote-hypervisor(也称为peer-pods)方案时,我遇到了一个问题,即Kubernetes pod IP在工作节点上无法访问。在本博客中,我将描述Kubernetes网络故障排查过程,希望对读者有帮助。
译自A Hands-on Kubernetes Network Troubleshooting Journey。
Kata远程管理程序(peer-pods)方案通过在AWS或Microsoft Azure等基础设施环境中使用本机基础设施管理API(如在AWS上创建Kata VM时使用AWS API,在Azure上创建时使用Microsoft Azure API),实现在任何基础设施环境中创建Kata VM。CNCF保密容器项目的cloud-api-adaptor子项目实现了Kata远程管理程序。
如下图所示,在peer-pods方案中,pod(Kata)虚拟机在Kubernetes(K8s)工作节点外部运行,通过VXLAN隧道从工作节点访问pod IP。使用隧道可以确保pod联网继续正常工作,无需对CNI网络做任何改变。
图片
当使用Kata容器时,Kubernetes pod在虚拟机内运行,因此我们将运行pod的虚拟机称为Kata VM或pod虚拟机。
pod IP10.132.2.46,它位于pod虚拟机上(IP:192.168.10.201),从工作节点虚拟机(IP:192.168.10.163)无法访问。
以下是我环境中的虚拟机详细信息 —— 工作节点虚拟机和pod(Kata)虚拟机。使用的Kubernetes CNI是OVN-Kubernetes。
+===========================+================+================+
| VM名称 | IP地址 | 备注 |
+===========================+================+================+
| ocp-412-ovn-worker-1 | 192.168.10.163 | 工作节点虚拟机 |
+---------------------------+----------------+----------------+
| podvm-nginx-priv-8b726648 | 192.168.10.201 | Pod虚拟机 |
+---------------------------+----------------+----------------+
TOP