1、准备基础搭建环境

1)集群网段分配

  • 宿主机网段:安装k8s的服务器ip
  • Pod网段:k8s Pod的网段,相当于容器的IP
  • Service网段:k8s service网段,service用于集群容器通信

需要注意的是这三个网段不能有任何交叉

比如如果宿主机的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.neet/aideddesign/ip_net_calc计算:

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

网段分配的实际情况:

  • 宿主机网段:192.168.XXX.XXX/16

  • Pod网段:172.168.XXX.XXX/12

  • Service网段:10.96.0.0/12

2)虚拟机分配简介

虚拟机名称主机名配置服务备注集群 IP虚拟机的NAT IP物理机IP
k8s-100-50k8s-100-504C/8G/100Gharbor服务、NFS服务、K8S所有证书管理服务、K8S资源配置清单仓库运维主机192.168.100.50192.168.122.50192.168.1.189
k8s-100-51k8s-100-514C/8G/100GDNS服务192.168.100.51192.168.122.51192.168.1.189
k8s-100-52k8s-100-5216C/32G/100Gkube-APIServer、Proxy、etcd、kubelet、ControllerManager、kubelet、kube-proxymaster192.168.100.52192.168.122.52192.168.1.189
k8s-100-53k8s-100-5316C/32G/100Gkube-APIServer、Proxy、etcd、kubelet、ControllerManager、kubelet、kube-proxymaster192.168.100.53192.168.122.53192.168.1.189
k8s-100-54k8s-100-5416C/32G/100Gkube-APIServer、Proxy、etcd、kubelet、ControllerManager、kubelet、kube-proxymaster192.168.100.54192.168.123.54192.168.1.192
k8s-100-55k8s-100-5516C/32G/100Gkubelet、kube-proxynode192.168.100.55192.168.122.55192.168.1.193
k8s-100-56k8s-100-5616C/32G/100Gkubelet、kube-proxynode192.168.100.56192.168.122.56192.168.1.193

kubernetes集群架构图 图中ip为上一次集群ip,实际以表格为主

在这里插入图片描述
K8S集群中的VIP设置为 192.168.100.57

2)虚拟机系统优化(在所有节点上操作)

1、在所有的节点上,关闭SelinuxfirewallddnsmaspNetWorkManager服务

# 关闭selinux
setenforce 0
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux 
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

# 关闭dnsmasq
systemctl disable --now dnsmasq

# 关闭NetworkManager
systemctl disable --now NetworkManager

2、修改主机名

sudo hostnamectl set-hostname k8s-100-50.host.com
sudo hostnamectl set-hostname k8s-100-51.host.com
sudo hostnamectl set-hostname k8s-100-52.host.com
sudo hostnamectl set-hostname k8s-100-53.host.com
sudo hostnamectl set-hostname k8s-100-54.host.com
sudo hostnamectl set-hostname k8s-100-55.host.com
sudo hostnamectl set-hostname k8s-100-56.host.com

3、CentOS7 换一下安装源,换成阿里源,并安装写必要的基础工具

# 使用阿里源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo   

# 常规yum更新
yum update -y   

# 安装基础工具
yum install -y yum-utils device-mapper-persistent-data lvm2 epel-release wget net-tools telnet vim tree nmap sysstat lrzsz dos2unix bind-utils   

# 配置一下docker安装的源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker- ce/linux/centos/docker-ce.repo    
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo  

4、所有节点关闭swap分区,fstab注释swap

swapoff -a && sysctl -w vm.swappiness=0   
sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab

5、所有节点同步时间

安装ntpdate服务

rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm  
yum install ntpdate -y

所有节点同步时间,时间同步配置如下

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime    
echo 'Asia/Shanghai' >/etc/timezone    
ntpdate time2.aliyun.com  

# 在centos中添加定时任务 
crontab -e
# 加入到crontab    
*/5 * * * * /usr/sbin/ntpdate time2.aliyun.com

所有节点配置Limit

ulimit -SHn 65535

并修改对应的文件

vim /etc/security/limits.conf 
# 末尾添加如下内容
* soft nofile 655360 
* hard nofile 131072 
* soft nproc 655350 
* hard nproc 655350 
* soft memlock unlimited 
* hard memlock unlimited

6、CentOS7 内核升级

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org && \
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm && \
yum --disablerepo=\* --enablerepo=elrepo-kernel repolist && \
yum --disablerepo=\* --enablerepo=elrepo-kernel install  kernel-ml.x86_64  -y

yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64  -y && \
yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml-tools.x86_64  -y

awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg && \
grub2-editenv list && \
grub2-set-default 0

# 重启服务器
reboot

# 查看内核是否升级成功
uname -r

7、为了方便,设置运维主机(192.168.100.50)免密登录

ssh-keygen -t rsa
# Master01配置免密码登录其他节点
for i in k8s-100-50 k8s-100-51 k8s-100-52 k8s-100-53 k8s-100-54 k8s-100-55 k8s-100-56; do ssh-copy-id -i /root/.ssh/id_rsa.pub $i;done

目前为止,基础的服务器优化步骤已经完成。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐