随着Kubernetes王者时代的到来,计算、网络、存储、安全是Kubernetes绕不开的话题,本次主要分享Kubernetes网络原理及方案。
一.kubernetes网络模型
在kubernetes中存在着两种IP,分别是podIP和service Cluster IP.podIP是指某个网卡或者虚拟设备上的,是真实存在的。service Cluster IP是一个虚拟IP,是由kube-proxy使用iptables规则重定向到本地的端口,再有负载均衡器分发到pod上的。
二.docker网络基础
1.名词解释
网络的命名空间:Linux在网络栈中引入网络命名空间,将独立的网络协议栈隔离到不同的命令空间中,彼此间无法通信;docker利用这一特性,实现不容器间的网络隔离。
Veth设备对:Veth设备对的引入是为了实现在不同网络命名空间的通信。
Iptables/Netfilter:Netfilter负责在内核中执行各种挂接的规则(过滤、修改、丢弃等),运行在内核 模式中;Iptables模式是在用户模式下运行的进程,负责协助维护内核中Netfilter的各种规则表;通过二者的配合来实现整个Linux网络协议栈中灵活的数据包处理机制。
网桥:网桥是一个二层网络设备,通过网桥可以将linux支持的不同的端口连接起来,并实现类似交换机那样的多对多的通信。
路由:Linux系统包含一个完整的路由功能,当