--- title: k8s集群IP网段规划建议 date: 2023-02-01 20:13:00 +0800 categories: [kubernetes] tags: [] pin: false --- ## 一、IPv4的专用网络地址 IPv4的地址范围是`1.0.0.1——255.255.255.254`,绝大多数的IP地址都是公有地址,需要向国际互联网信息中心申请注册。但是在IPv4地址协议中预留了3个IP地址段,作为专用网络地址,专门供组织机构内部使用。这三个地址段分别位于A、B、C三类地址内: 这三个地址段分别位于A、B、C三类地址内: A类地址,保留的IP范围是`10.0.0.0 -- 10.255.255.255` B类地址,保留的IP范围是`172.16.0.0 -- 172.31.255.255` C类地址,保留的IP范围是`192.168.0.0 -- 192.168.255.255` 当然,IPv4还有其他的保留地址,比如 `127.0.0.0 – 127.255.255.255` 这个IP范围也是保留地址,用于到本地主机的环回地址。 ## 二、集群IP的规划建议 我们可以通过下面这张图了解到k8s集群的网络的架构 ![./img/k8s_basic/net.png](/img/k8s_basic/kb11-net.png) 规划集群的IP地址,应当要满足尽量满足两个要求,一是地址有意义,二是要让人容易理解。根据IPv4的相关规则以及实际的需求,我们搭建k8s集群可以遵循以下的IP地址分配规则 - `节点网络`: 节点网络是宿主机的网络,也就是机房里单个主机的内网,可以使用 `10.0.0.0/8 (255.0.0.0)`网络段 - `Pod网络`: 每个节点可以运行多个Pod,可以使用`172.16.0.0/12 (255.240.0.0)`网络段,`172`也是docker容器的默认网段 - `Service网络`: Pod网络和Service网络通过kube-proxy相连,Service网络是虚拟的,可以使用 `192.168.0.0/16 (255.255.0.0)` 网络段 在节点网络中,第一位数字:10,通常标识IDC(Internet Data Center,互联网数据中心) 机房;第二位通常代表机房序号;第三位代表不同的项目或者环境,可以做物理隔离;第四位代表具体的项目。 如果我们使用了以上面的规则,通过IP段让我们能快速地辨识所属网络类型(节点网络、Pod网络、Service网络),同时也便于理解。