这篇学习笔记是基于杜宽老师在51CTO上发布的视频课程制作的。在此,感谢杜宽老师的分享和教学。如有侵权,请及时联系我。版权归原作者所有,未经允许不得转载或使用。
一、服务器配置选型
1. 学习环境(用于k8s基础的学习)
a) 2核2G 磁盘40G足矣,可以采用单master多Node,或者多Master无Node(Master节点也可以充当Node节点)
2. 实战环境(用于k8s实战学习,从进阶部分开始)
a) 2核4G+磁盘40G+40G,可以采用单Master多Node,
或者多Master多Node(Master节点也可以充当Node节点,总计可用node节点数为5即可)
3. 企业测试环境:
a) Master节点(尽量三台实现高可用,可以将某台Master禁止调度):8核16G+ 磁盘分为系统盘(路径:/,大小100G+)、Docker数据盘(/var/lib/docker,200G+)
b) Etcd数据盘(/var/lib/etcd,50节点50G+,150节点150G+,etcd节点可以和Master节点同一个宿主机,三个节点实现高可用)
c) Node节点:无特殊要求
d) 注意:测试环境所有的数据盘可以无需区分,有条件最好单独
4. 企业生产环境:
a) Master节点:三个节点实现高可用(必须)
i. 节点数:0-100 8核16+
ii. 节点数:100-250 8核32G+
iii. 节点数:250-500 16核32G+
b) etcd节点:三个节点实现高可用(必须),有条件存储分区必须高性能SSD硬盘,没有SSD也要有高效独立磁盘
i. 节点数:0-50 2核8G+ 50G SSD存储
ii. 节点数:50-250 4核16G+ 150G SSD存储
iii. 节点数:250-1000 8核32G+ 250G SSD存储
c) Node节点:无特殊要求,主要是Docker数据分区、系统分区需要单独使用,不可以使用同一个磁盘,系统分区100G+、Docker数据分区200G+,有条件使用SSD硬盘,必须独立于系统盘
d) 其他:集群规模不大可以将etcd和master放置于同一个宿主机,
也就是每个master节点部署k8s组件和etcd服务,但是etcd的数据目录一定要独立,并且使用SSD,
两者部署在一起需要相对增加宿主机的资源,个人建议生产环境把master节点的资源一次性给够,
此处的费用不应该节省,可以直接使用16核32G或者64G的机器,之后集群扩容就无需扩容master节点的资源,减少风险。
其中master节点和etcd节点的系统分区100G即可。
二、网段划分
集群安装时会涉及到三个网段:
宿主机网段:就是安装k8s的服务器
Pod网段:k8s Pod的网段,相当于容器的IP
Service网段:k8s service网段,service用于集群容器通信。
一般service网段会设置为10.96.0.0/12
Pod网段会设置成10.244.0.0/12或者172.16.0.1/12
宿主机网段可能是192.168.0.0/24
需要注意的是这三个网段不能有任何交叉。
比如如果宿主机的IP是10.105.0.x
那么service网段就不能是10.96.0.0/12,因为10.96.0.0/12网段可用IP是:
10.96.0.1 ~ 10.111.255.255
所以10.105是在这个范围之内的,属于网络交叉,此时service网段需要更换,
可以更改为192.168.0.0/16网段(注意如果service网段是192.168开头的子网掩码最好不要是12,最好为16,因为子网掩码是12他的起始IP为192.160.0.1 不是192.168.0.1)。
同样的道理,技术别的网段也不能重复。可以通过http://tools.jb51.net/aideddesign/ip_net_calc/计算:
所以一般的推荐是,直接第一个开头的就不要重复,比如你的宿主机是192开头的,那么你的service可以是10.96.0.0/12.
如果你的宿主机是10开头的,就直接把service的网段改成192.168.0.0/16
如果你的宿主机是172开头的,就直接把pod网段改成192.168.0.0/12
注意搭配,均为10网段、172网段、192网段的搭配,第一个开头数字不一样就免去了网段冲突的可能性,也可以减去计算的步骤。
评论区