kubernetes-01-集群搭建-01-环境准备

环境:

Ubuntu 20.04.2 LTS \n \l

生产环境的集群搭建推荐使用Kubeadm,

Kubeadm工具的出发点很简单,就是尽可能简单的部署一个生产可用的Kubernetes集群。实际也确实很简单,只需要两条命令:

# 创建一个 Master 节点
$ kubeadm init

# 将一个 Node 节点加入到当前集群中
$ kubeadm join <Master 节点的 IP 和端口 >

1-环境准备:

我的三台虚拟机服务器

172.30.10.175   master
172.30.10.25     node1
172.30.10.164     node2

1:设置系统主机名以及 Host 文件的相互解析

查看主机名: hostname

修改主机名:vim /etc/hostname

重启系统:reboot

分别在三个虚拟机执行上面的命令主机名分别为:master,node1,node2



添加host解析:

编辑etc/hosts文件

cat <<EOF>> /etc/hosts
172.30.10.175   master
172.30.10.25     node1
172.30.10.164     node2
EOF
在三台服务器分别执行上面这个

验证
随便找一台服务器,ping 以下主机名测试
ping node1
ping node2

2:时间同步

kubernets要求集群中的时间节点必须精确一致;

3:禁用iptables和firewalld服务

kubernets和docker在运行中会产生大量的iptables规则(会实现一些转发和路由),为了不让系统规则跟他们混淆,直接关闭系统的规则;

关闭防火墙:
sudo ufw status 查看当前防火墙状态
sudo ufw enable 开启防火墙
sudo ufw disable 关闭防火墙

关闭iptables服务:
apt-get remove iptables

4:关闭selinux

selinux是linux系统下的一个安全服务,若是不关闭它,在安装集群的时候会产生各种奇怪的问题;

编辑/etc/selinux/config 文件,
修改SELINUXD的值为disabled

注意,修改完毕后需要重启服务器
重启:reboot

我的ubuntu 20找不到这个文件,有谁知道怎么关闭的可以讲下


查看selinux是否开启还是关闭:
getenforce

不过会提示没有这个工具,首先要安装下这个:
apt install selinux-utils

然后我安装好后,再getenforce:
root@master:/etc/selinux# getenforce
Disabled

已经是关闭状态的;

5:禁用swap分区

swap分区指的是虚拟内存分区,作用是在物理内存使用完后,将磁盘空间虚拟成内存来使用;

启用swap设备会对系统的性能产生非常负面的影响,因此kubernetes要求每个节点都要禁用swap设备,但是如果因为某些原因确实不能关闭swap分区,就需要在集群安装过程中通过明确的参数进行配置说明;

禁用swap分区:
vim /etc/fstab
注释掉最后一行的swap

然后重启:
reboot

然后free -m 
可以看到swap的空间为0了

6:调整linux中的内核参数

修改linux的内核参数,添加网桥过滤和地址转发功能


1:添加一个文件,编辑内容如下:
vim /etc/sysctl.d/kubernetes.conf
添加如下配置:

net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1

修改完后需要重新加载配置:
sysctl -p /etc/sysctl.d/kubernetes.conf
或者
sysctl -p


2:加载网桥过滤模块:
modprobe br_netfilter

查看是否加载成功:
lsmod |grep br_netfilter

7:配置ipvs功能

在kubernetes中service(做服务端口接口暴露的,负载均衡,反向代理)有两种代理模型,一种是基于iptables的,一种是基于ipvs的,

两者比较的话,ipvs的性能明显要高一些,但是如果要使用它,需要手动载入ipvs模块;

启用ipvs
apt-get install -y ipvsadm ipset sysstat conntrack libseccomp2


开机自启动加载ipvs内核

:> /etc/modules-load.d/ipvs.conf
module=(
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack
br_netfilter
)
for kernel_module in ${module[@]};do
    /sbin/modinfo -F filename $kernel_module |& grep -qv ERROR && echo $kernel_module >> /etc/modules-load.d/ipvs.conf || :
done

ipvsadm --clear



查看是否安装成功
lsmod | grep -e ip_vs -e nf_conntrack_ipv4

上面的那些安装完成后,最好重启下三台服务器;

参考:

kubeadm部署1.17.3[基于Ubuntu18.04] - 云原生之道 - 博客园

猜你喜欢

转载自blog.csdn.net/u010953880/article/details/120287643