Kubernetes网络:深入理解与实践
1. Pod间通信
Pod的IP地址无论位于哪个节点,都可被其他Pod访问。下面分别介绍同一节点内和不同节点间的Pod通信。
1.1 同一节点内的Pod通信
同一节点内的Pod间通信默认通过网桥进行。例如有两个拥有各自网络命名空间的Pod,当Pod 1要与Pod 2通信时,数据包会从Pod 1的命名空间经过对应的veth对(如vethXXXX),最终到达网桥。网桥会广播目标IP以帮助数据包找到路径,vethYYYY响应广播,数据包随后到达Pod 2。
1.2 不同节点间的Pod通信
根据要求,所有节点必须能够与所有容器通信。Kubernetes将实现委托给容器网络接口(CNI),用户可选择L2、L3或覆盖网络等不同实现方式。覆盖网络(即数据包封装)是最常见的解决方案之一,它在数据包离开源节点前进行封装,传输后在目标节点解封装,但会增加网络延迟和复杂性。只要所有容器能跨节点相互访问,可使用任何技术,如L2邻接或L3网关。
以下是使用minikube启动CNI的步骤:
1. 若minikube已启动,可先停止或删除集群:
minikube stop
# 或
minikube delete
- 启动minikube并启用CNI:
minikube start --network-plugin=cni
超级会员免费看
订阅专栏 解锁全文
824

被折叠的 条评论
为什么被折叠?



