14.10.1. 使用RKE部署K8S

14.10.1.1. 主机准备

警告

由于在安装k8s时,有些镜像因被墙,安装不了,请提前配置旁路由,并在路由上翻墙。

14.10.1.1.1. 主机规划

hostname

ip

用途

master01

192.168.10.10

controlplane,rancher,rke

master02

192.168.10.11

controlplane

worker01

192.168.10.12

worker

worker02

192.168.10.13

worker

etcd01

192.168.10.14

etcd

备注

  • 所有主机的IP需要配置成静态IP,并且可用互相访问。

  • cpu和内存的比例: 1:2或1:4

14.10.1.1.2. 配置hostname

$ sudo hostnamectl set-hostname xxx

14.10.1.1.3. 配置hosts

$ sudo vim /etc/hosts

在该文件中添加主机到IP的映射:

master01 192.168.10.10
master02 192.168.10.11
worker01 192.168.10.12
worker02 192.168.10.13
etcd01   192.168.10.14

14.10.1.1.4. 禁用交换

临时禁用:

$ sudo swapoff -a

永久禁用:

$ sudo vim /etc/fstab

把type为swap的行的记录注释掉,重启即可。

14.10.1.1.5. 配置ip_forward及过滤机制

$ sudo vim /etc/sysctl.conf

sysctl.conf文件用于配置 Linux 内核参数。通过修改这个文件,可以动态地调整内核的运行参数,不需要重新启动系统。

追加下列内容:

# 启用/禁用IP转发
net.ipv4.ip_forward=1
# 用于启用网桥的IPv6表过滤功能,这个参数设置为1时,IPv6流量通过网桥时会调用IPv6表过滤规则。
net.bridge.bridge_nf_call_ipv6tables=1
# 作用与net.bridge.bridge_nf_call_ipv6tables类似,但针对的是IPv4流量。
net.bridge.bridge_nf_call_iptables=1
$ sudo modprobe br_netfilter

备注

该命令用于加载br_netfilter模块,该模块实现了网桥的netfilter过滤功能。 加载该模块后,我们就可以在网桥上应用netfilter防火墙规则,实现流量过滤和控制。 具体来说,加载 br_netfilter 模块后:

  • 我们可以在网桥的输入链(INPUT)和输出链(OUTPUT)应用netfilter规则,控制流入和流出网桥的流量

  • 我们可以在网桥的转发链(FORWARD)应用netfilter规则,控制流经网桥的流量

  • 我们可以使用iptables和ip6tables命令在网桥的三个链上添加和删除规则

  • 我们可以启用 params net.bridge.bridge-nf-call-iptables 和 net.bridge.bridge-nf-call-ip6tables,在网桥上启用IPv4和IPv6的netfilter规则

所以,如果我们需要使用netfilter框架在Linux网桥上进行流量过滤和控制,就需要加载br_netfilter模块。 只有加载了这个模块,netfilter才能正确地工作在网桥环境中。 总的来说,modprobe br_netfilter 命令实现了在网桥上启用netfilter功能,让我们得以使用iptables等工具进行网桥流量管理。

14.10.1.1.6. 关闭防火墙

$ sudo systemctl stop firewalld
$ sudo systemctl disable firewalld

14.10.1.1.7. 关闭selinux

$ sudo vim /etc/selinux/config
#setenforce 0

14.10.1.1.8. 同步主机时间

可用写一个crontab,定时同步时间。

crontabl -e
0 */1 * * * ntpdate time1.aliyun.com

这里我们使用阿里云的时间同步服务器。

14.10.1.2. 安装docker

14.10.1.3. 安装rke