1.1 服务器规划 原创 精华

不做加班狗
发布于 2022-6-16 16:23
浏览
1收藏

1.1 服务器规划

1.服务器配置选型

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即可)
    
Master节点:2核4G服务器3台。
Node节点:2核4G服务器2台。
如果要做DevOps实验,可能需要5台以上4核5G的服务器
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即可。

注意:每个节点的ip设为静态ip地址,不能动态分配。磁盘20-40G就够了。

2.集群网段划分

1>.集群安装时会涉及到三个网段
主机节点网段:192.168.0.0/24  # 宿主机,如,k8s-master01
Service网段:10.96.0.0/12  # 集群容器通信,Service相当于Pod的一个代理
Pod网段:10.244.0.0/12或者172.16.0.1/12  # 相当于容器的IP,Pod是容器的集合,是管理容器的。
2>.需要注意的是这三个网段不能有任何交叉
容易踩的坑:
集群节点状态都是ready的,pod的所有状态也是running的,为什么网就是不通?
很可能是采用了重复的网段,导致网段冲突了。

举例:
如果宿主机的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)。
同样的道理,计算Pod网段也不能重复。

一般的推荐是,直接第一个开头的就不要重复,比如你的宿主机是192开头的,那么你的service可以是10.96.0.0/12.

如果你的宿主机是10开头的,就直接把service的网段改成192.168.0.0/16

如果你的宿主机是172开头的,就直接把pod网段改成192.168.0.0/12

注意搭配,尽量避免均为10网段、172网段、192网段的搭配。第一个开头数字不一样就免去了网段冲突的可能性,也可以减去计算的步骤。

表1-1 本教程使用的虚拟机IP

主机名 IP地址 说明
k8s-master01 ~ 03 192.168.3.35 ~ 37 master节点 * 3
k8s-master-lb 192.168.3.40 keepalived虚拟IP
k8s-node01 ~ 02 192.168.3.38 ~ 39 worker节点 * 2

说明:本教程通过5台虚拟机演示K8s的安装,节点数较少,所以采用了同一网段的IP。生产环境中随时可能扩充节点,为了避免网段冲突的隐患,应注意三个网段不能有任何交叉。

注意:VIP(虚拟IP)不要和公司内网IP重复,首先去ping一下,不通才可用。VIP需要和你的Master主机在同一个局域网内(不是直接用我的VIP)!

公有云上搭建VIP是公有云的负载均衡的IP,比如阿里云的内网SLB的地址,腾讯云内网ELB的地址。不需要再搭建keepalived和haproxy。

3>.网段范围计算工具

可以通过http://tools.jb51.net/aideddesign/ip_net_calc/计算:

1.1 服务器规划-鸿蒙开发者社区

4>.文档修改

根据文档修改ip地址时,ctrl+F,批量查找和替换为自己的ip地址。如,192.168.3.35 ~ 37批量改为自己的节点IP。装多台虚拟机,就批量替换多次。批量替换宿主机、Pod网段、Service网段。

k8s-master-lb 是不占任何机器的。

注意:以下两个是固定的ip规则:

Service网段中“Kubernetes Service”占其网段的第一个可用ip,如,192.168.0.1批量替换为我们的,如,10.96.0.1。

CoreDNS:占其网段的第十个可用ip,如,192.168.0.10。批量替换为我们的,如,10.96.0.10。

3.服务器操作系统选型

服务器操作系统选择CentOS 7.9。不要选CentOS8, 该版本在2021年就不被官方不维护了,以后是CentOS Stream。CentOS7会维护到2024年。

下载地址: https://www.centos.org/download/

1.1 服务器规划-鸿蒙开发者社区

选择阿里云镜像:

1.1 服务器规划-鸿蒙开发者社区

可选择DVD-2009.iso版本或Minimal-s009.iso的版本。

1.1 服务器规划-鸿蒙开发者社区

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
2
收藏 1
回复
举报
1条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

前排支持大佬新教程!

1
回复
2022-6-16 18:35:02
回复
    相关推荐