Dojo
最新
最佳
搜索
订阅
解道Jdon
领域驱动设计
架构设计
热点话题
GitHub开源免费源代码
产品经理
数据工程
DevOps文章排行榜
RUST语言
微服务架构文章排行榜
go语言文章排行榜
kafka教程文章排行榜
幽默模因
更多话题
跟踪Kubernetes中的网络流量路径
22-01-21
banq
在深入了解数据包如何在 Kubernetes 集群中流动的细节之前,让我们首先明确 Kubernetes 网络的要求。
Kubernetes 网络模型定义了一组基本规则:
集群中的 pod 应该能够在不使用网络地址转换 (NAT) 的情况下与任何其他 pod 自由通信。
在集群节点上运行的任何程序都应该与同一节点上的任何 pod 进行通信,而无需使用 NAT。
每个 pod 都有自己的 IP 地址(IP-per-Pod),并且每个其他 pod 都可以通过相同的地址访问它。
这些要求不会将实施限制为单一解决方案。
相反,它们笼统地描述了集群网络的属性。
为了满足这些限制,您必须解决
以下挑战:
你如何确保同一个 pod 中的容器的行为就像它们在同一个主机上一样?
pod 能否到达集群中的其他 pod?
pod 可以访问服务吗?服务是负载平衡请求吗?
pod 可以接收集群外部的流量吗?
在本文中,您将重点关注前三点,从 Pod 内网络或容器到容器的通信开始。
Kubernetes 网络要求
Linux 网络命名空间如何在 Pod 中工作
pause 容器在 pod 中创建网络命名空间
为 pod 分配了一个 IP 地址
检查集群中 pod 到 pod 的流量
Pod 网络命名空间连接到以太网桥
在同一节点上跟踪 pod 到 pod 的流量
跟踪不同节点上的 pod 到 pod 通信
容器网络接口 - CNI
检查 pod 以服务流量
使用 Netfilter 和 Iptables 拦截和重写流量
检查服务的响应
猜你喜欢
其他人在看