00:文章简介
介绍k8s集群部署前的规划。
01: 网络规划
1.1:k8s集群中有3种网络
- 主机网络
- 物理网络
- Master与Node节点间通信
- service网络
- 虚拟网络
- pod对象的访问入口
- 用于调度流量到service后端的各个pod节点上
- 连接在每个Pod的外网网卡eth0上面
- Pod网络
- 虚拟网络
- 用于各个Pod间的通信
- 把Pod比作虚拟主机的话,那么Pod网络就是虚拟主机间通信的网络,但只用于内部通信,相当于内网网卡
1.1.1: 主机网络
物理设备见的物理网络,也承载其他两个虚拟网络的通信。
表现为:INTERNAL-IP
kubectl get nodes -o wide
kubectl describe nodes <node_name>
1.1.2: Service网络
可以看作是一个固定的网络代理入口,但后端的真实服务器的ip不固定,Service可以使用label标签和服务发现功能,找到后端的真实服务器。
主要功能为: Pod资源负载均衡和资源代理
表现为:Cluster IP
默认为: 10.96.0.0/12
kubectl get svc -o wide
kubectl describe svc <service_name>
1.1.3: Pod网络
是每个Pod间通信的虚拟网络,只用于集群内部网络通信。
表现为:IP
默认为:10.244.0.0/16
kubectl get pods -o wide
kubectl describe pod <pod_name>
02: 主机资源规划
master节点要求必须2核心,node节点正常来说没有限制(越大越好)。
03: 集群数量规划
默认情况下,对于我们当前的主节点集群中,只允许坏掉1个,如果坏掉2个master,整个集群就完全崩溃了。
因为:
1. 一般情况下,第1个master节点掉线后,需要1分钟后才能看到掉线,第2个节点只要崩溃,集群立即无法使用。
2. 对于生产的集群,原则上允许节点坏掉的数量需要遵循一个原则,剩余节点数量要大于n/2个整数节点。
3. 例如:3个节点允许坏掉1个,5个节点允许坏掉2个。
4. 原因是所有节点的属性信息都保存在etcd中,而etcd是一个分布式的,一致key-value存储,它遵循分布式一致性的基本节点要求。
评论区