手动加载centos7 box文件
配置Vagrantfile
1 | Vagrant.configure("2") do |config| |
先修改全局设定中的默认电脑位置

进入到三个虚拟机,开启ssh的访问权限
1 | vagrant ssh xxx进入到系统后 |
1 | service sshd restart |
如果不需要配置网卡/网络, 跳过下一步执行
reboot重启即可
配置网络/网卡
shutdown关机操作选择三个节点,然后执行“管理”->"全局设定"->“网络”,添加一个NAT网络。
分别修改每台设备的网络类型,网卡1为Nat(三个节点都使用同一个NAT网络即可), 网卡2为仅主机交互(virtualbox默认会带一个
192.168.56.1网段的主机网络), 并操作每个节点刷新MAC地址。1网络是集群交互,2网络是宿主交互
设置Linux环境(三个节点都执行)
- 三台主机必须都要有唯一的hostname
1 | 使用如下命令进行配置 |
- 关闭防火墙
1 | systemctl stop firewalld |
- 关闭seLinux
1 | # linux默认的安全策略 |
- 关闭swap
1 | 临时关闭 #永久关闭 #验证,swap必须为0 |
- 添加主机名与IP对应关系:
- 查看主机名:
1 | hostname |
- 如果主机名不正确,可以通过“hostnamectl set-hostname <newhostname> :指定新的hostname”命令来进行修改。
1 | cat >> /etc/hosts << EOF |
- 更新yum源
1 | yum update -y |
- 配置sysctl
1 | 将桥接的IPV4流量传递到iptables的链, Disable the swap... |
1 | 应用当前规则 |
net.ipv4.ip_forward
这个参数是控制 Linux 系统的 IP 转发功能的。
IP 转发(IP Forwarding)功能允许 Linux 系统拦截发往其他目标地址的 IP 数据包,并将它们转发到对应的网络接口。
net.ipv4.ip_forward 这个参数就是控制该功能是否开启。
net.ipv4.ip_forward=0 表示关闭 IP 转发功能。这通常是默认值。
net.ipv4.ip_forward=1 则表示开启 IP 转发功能。
开启 IP 转发功能后,Linux 系统就可以作为一个 Router,在两个网络接口之间进行 IP 数据的转发。
举个例子,如果一台主机同时连接了两个网络,eth0 接内网,eth1 接外网。此时如果开启 IP 转发,它就可以在内网和外网之间进行路由功能,实现内网到外网的访问。
所以简单来说,net.ipv4.ip_forward=1 就是开启了 Linux 作为网络 Router 的功能,使其可以在不同网络间进行 IP 数据包的转发。这对构建 Linux 路由器很重要。
net.bridge.bridge-nf-call-ip6tables和net.bridge.bridge-nf-call-iptables
net.bridge.bridge-nf-call-ip6tables 和 net.bridge.bridge-nf-call-iptables 这两个参数用于控制 Linux bridge 对 IPv6 和 IPv4 数据包的过滤。
Linux bridge 是一种网络桥接技术,可以将两个或多个网络接口桥接在一起,组成一个广播域,实现网络互连。
而数据包过滤是通过 iptables/ip6tables 实现的。bridge-nf-call 就是控制是否调用 iptables/ip6tables 对通过 bridge 的数据包进行过滤。
- net.bridge.bridge-nf-call-ip6tables=1 表示 bridge 调用 ip6tables 对通过的 IPv6 数据包进行过滤。
- net.bridge.bridge-nf-call-iptables=1 表示 bridge 调用 iptables 对通过的 IPv4 数据包进行过滤。
通常这两个参数需要设置为 1,否则 bridge 将绕过 iptables/ip6tables,导致过滤规则不生效。
举例来说,在 OpenStack 中,linux bridge 被广泛用于连接虚拟机网卡。为了实现网络安全,需要通过 iptables 过滤虚拟机之间的网络访问。此时就需要开启 bridge 对 IPv4 数据包的 iptables 过滤。
总结一下:
- ip_forward 是 IP 转发,桥接不同网段。
- bridge-nf-call 是 bridge 调用 iptables/ip6tables进行数据包过滤。
二者互相配合,可以实现连接且安全的网络互通。
如果是使用ipvs模式,执行如下(可选项,当kube-poroxy使用ipvs模式时执行)
使用
lsmod命令可以查看当前已支持的lvs方式开启ipvs 支持
1 | yum -y install ipvsadm ipset |
- 使用
lsmod|grep ip_vs检查mod是否生效
1 | [root@k3s-master1 ~]# lsmod|grep ip_vs |
- 待k8s安装完之后, 可以使用
ipvsadm -Ln检查service是否应用到ipvs
1 | ipvsadm -Ln |
- 应用规则:
手动加载所有的配置文件,执行:
# sysctl --system
1
2
3
4
5
6
7
8 --system
从所有下列配置文件中加载系统设置
/run/sysctl.d/*.conf
/etc/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf
/etc/sysctl.conf单独指定配置文件加载,执行:
# sysctl -p filename.conf
1 | sysctl --system |
centos 安装 ntpdate 并同步时间
1、安装ntp
1 | yum install -y ntp |
2、与一个已知的时间服务器同步
1 | # time.nist.gov 是一个时间服务器 |
3、删除本地时间并设置时区为上海
1 | rm -rf /etc/localtime |
下一篇进入k3s高可用安装篇