8

1.1 服务器规划-开源基础软件社区-51CTO.COM

 3 years ago
source link: https://ost.51cto.com/posts/13940
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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 服务器规划-开源基础软件社区

Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK