一、搭建k8s集群前置准备工作
1、VM虚拟机配置网卡
2、准备机器
操作系统 | IP | 角色 | CPU核心数 | 运行内存 | Hostname |
---|---|---|---|---|---|
CentOS 7.6 | 192.168.1.2 | Master1 | 2 | 2G | k8s-master1 |
CentOS 7.6 | 192.168.1.3 | Master2 | 2 | 2G | k8s-master2 |
CentOS 7.6 | 192.168.1.4 | Master3 | 2 | 2G | k8s-master3 |
CentOS 7.6 | 192.168.1.5 | Nade1 | 2 | 4G | k8s-nade1 |
CentOS 7.6 | 192.168.1.6 | Nade1 | 2 | 4G | k8s-node2 |
CentOS 7.6 | 192.168.1.7 | Harbor | 2 | 4G | k8s-harbor(镜像仓库) |
CentOS 7.6 | 192.168.1.8 | Spray | 2 | 2G | 使用spray安装k8s使用(装完可删) |
3、每台机器升级内核
# 检查已安装的内核版本
uname -rs
#导入该源的秘钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#启用该源仓库
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
#查看有哪些内核版本可供安装
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
#安装长期稳定版本,稳定可靠
yum --enablerepo=elrepo-kernel install kernel-lt -y
设置GURB默认的内核版本
为了让新安装的内核成为默认启动选项,你需要如下修改 GRUB 配置:
vim /etc/default/grub
并设置 GRUB_DEFAULT=0。意思是 GRUB 初始化页面的第一个内核将作为默认内核。
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved #这里的saved改为0即可,重启后,默认就是你上次所选的版本了。
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
执行命令:
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
**4、所有机器关闭SELinux(非常重要)
- 查看SELinux状态
[root@localhost ~]# getenforce Enforcing
[root@localhost ~]# /usr/sbin/sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: permissive Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 28
- 临时关闭
[root@localhost ~]# setenforce 0
- 永久关闭
将SELINUX=enforcing改为SELINUX=disabled,保存后退出vi /etc/selinux/config
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=enforcing # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
5、所有机器关闭防火墙、dnsmasq、swap
systemctl disable --now firewalld
systemctl disable --now dnsmasq
systemctl disable --now NetworkManager
swapoff -a && sysctl -w vm.swappiness=0
vi /etc/fstab
#/dev/mapper/centos-swap swap swap defaults 0 0 #注释掉这行
6、时区设置
yum -y install ntp
#通过阿里云时间服务器校准时间
ntpdate ntp1.aliyun.com
# 设置时区为上海
timedatectl set-timezone Asia/Shanghai
7、静态ip
# 编辑 /etc/sysconfig/network-scripts/ifcfg-ens33
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=ethernet
NAME=ens33
DEVICE=ens33
DEFROUTE=yes
BOOTPROTO=static
IPADDR=192.168.10.10 # 静态ip
NETMASK=255.255.255.0
GATEWAY=192.168.10.2 # 跟虚拟网卡网关保持一直
DNS1=223.5.5.5
DNS2=223.6.6.6
ONBOOT=yes
ZONE=public
# Linux 网卡配置说明
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="8c111770-cb5f-477c-a6c4-a3581d79bd55"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.219.11
NETMASK=255.255.255.0
GATEWAY=192.168.219.1
HWADDR=00:0C:29:3A:0C:F3
DNS1=8.8.8.8
DNS2=8.8.4.4
#TYPE: 表示网络接口的类型,这里是 “Ethernet”,表示这是一个以太网接口。
#PROXY_METHOD: 代理方法,这里设置为 “none”,表示不使用代理。
#BROWSER_ONLY: 指示是否仅供浏览器使用,这里设置为 “no”,意味着不是仅供浏览器使用。
#BOOTPROTO: 指定启动时的协议,这里是 “static”,表示使用静态 IP 地址,而不是动态配置(如 DHCP)。
#DEFROUTE: 表示该接口是否是默认路由。这设置为 “yes”,意味着此接口会用作默认的网络出口。
#IPV4_FAILURE_FATAL: 指示是否将 IPv4 配置失败标记为致命错误,这里设置为 “no”,表示即使 IPv4 配置失败,也不会阻止系统启动。
#IPV6INIT: 指示是否初始化 IPv6,这里设置为 “yes”,意味着此接口将支持 IPv6。
#IPV6_AUTOCONF: 表示是否自动配置 IPv6 地址,这里设置为 “yes”,表示使用自动配置功能。
#IPV6_DEFROUTE: 指示是否为 IPv6 配置默认路由,这里设置为 “yes”,表示接口将用于 IPv6 默认路由。
#IPV6_FAILURE_FATAL: 指明 IPv6 配置失败是否为致命错误,这里设置为 “no”。
#IPV6_ADDR_GEN_MODE: 指定生成 IPv6 地址的模式,这里设置为 “stable-privacy”,表示使用一个稳定的隐私地址生成策略。
#NAME: 设定网络接口的名称,这里是 “ens33”。
#UUID: 一个唯一标识符,用于识别网络接口。
#DEVICE: 表示该配置文件对应的设备,这里是 “ens33”,与 NAME 字段相同。
#ONBOOT: 指示是否在系统启动时启用此接口,这里设置为 “yes”,表示在启动时会自动启用该接口。
#IPADDR: 配置的静态 IPv4 地址,这里设置为 192.168.219.11。
#NETMASK: 子网掩码,这里设置为 255.255.255.0,表示子网的范围。
#GATEWAY: 指定默认网关,即数据包如何离开本地网络,这里设置为 192.168.219.1。
#HWADDR: 硬件地址(MAC 地址),唯一标识网络接口的硬件地址,这里是 00:0C:29:3A:0C:F3。
#DNS1 和 DNS2: 指定 DNS 服务器的地址,这里分别是 8.8.8.8(Google 公共 DNS)和 8.8.4.4(另一个 Google 公共 DNS)。