k8s二进制高可用部署系列文章集合
注意以下命令 均以root用户执行!!!
虚拟机服务器配置静态网络
防止虚拟机重启时dhcp 动态分配ip,导致ip变化。命令如下:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
需要特别关注的配置如以下注释内容:
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="a4d64cdd-4a01-4a9d-ad66-924f0fbbaf03"
DEVICE="ens33"
ONBOOT="yes"
# ip地址
IPADDR=192.168.237.11
# 网关
GATEWAY=192.168.237.2
# 子网掩码
NETMASK=255.255.255.0
清空并关闭防火墙
清空规则
iptables -F
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭 SElinux
查看selinux状态,Enforcing 表示
getenforce
永久关闭selinux,此处就不写如何临时关闭了。
vim /etc/selinux/config
/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=disabled
# 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
关于selinux的几种状态说明,输出结果可能为以下三种之一:
Enforcing
:表示SELinux处于强制模式,严格执行SELinux策略。Permissive
:表示SELinux处于宽容模式,记录违规操作但不阻止它们。Disabled
:表示SELinux已禁用。
请注意,SELinux是一个安全增强功能,可以提供额外的系统安全保护。在某些情况下,禁用SELinux可能会导致系统安全风险。如果您需要禁用SELinux,请确保通过其他方式保护您的系统免受未经授权的访问和网络威胁。
关闭swap
swapoff -a
vim /etc/fstab
重启服务器
reboot
再次查看是否关闭swap,无输出说明已经关闭
swapon --show
主机名修改
永久生效配置命令,注意此命令需要单独在没太虚拟机服务器执行,因为主机名都不一样。
hostnamectl set-hostname xxx
以下是我的ip对应主机名
# 192.168.237.11执行
hostnamectl set-hostname k8s-master-1
# 192.168.237.12执行
hostnamectl set-hostname k8s-master-2
# 192.168.237.13执行
hostnamectl set-hostname k8s-master-3
# 192.168.237.14执行
hostnamectl set-hostname k8s-node-1
# 192.168.237.15执行
hostnamectl set-hostname k8s-node-2
配置主机和 IP 映射关系(/etc/hosts)
复制命令到终端,回车结束。
cat >> /etc/hosts << EFO
192.168.237.11 k8s-master-1
192.168.237.12 k8s-master-2
192.168.237.13 k8s-master-3
192.168.237.14 k8s-node-1
192.168.237.15 k8s-node-2
EFO
配置 yum 源,阿里云镜像
# 安装 wget 工具
yum install -y wget
# 备份本地源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 下载阿里源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 生成缓存
yum makecache
# 安装 epel 扩展源,可省略
yum install -y epel-release
配置时间同步
# 安装ntpdate
yum -y install ntpdate
# 和阿里云的时间服务器做同步
ntpdate ntp1.aliyun.com
# 定时同步
echo "*/10 * * * * /usr/sbin/ntpdate time1.aliyun.com" >> /var/spool/cron/root
# 设置时区
timedatectl set-timezone Asia/Shanghai
hwclock --systohc
下载常用命令
yum -y install net-tools tree wget lrzsz vim unzip bash-completion build-essential yum-utils telnet telnet-server device-mapper-persistent-data lvm2 nfs-utils gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel sudo ntp libaio-devel ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate ipvsadm
清除邮件提示消息
# 清除 "您在 /var/spool/mail/root 中有新邮件"信息
echo "unset MAILCHECK" >> /etc/profile
source /etc/profile
# 清空邮箱数据站空间
cat /dev/null > /var/spool/mail/root
升级Linux 内核
安装 kubernetes 1.24及以上版本,Linux Kernel 需要在 5.x 以上的版本。
查看linux 内核,我的是 3.10.0-862.el7.x86_64
uname -r
查看操作系统发行版本,我的是 CentOS Linux release 7.5.1804
cat /etc/redhat-release
更新软件源,导入 ElRepo 仓库公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
ElRepo 是一个分发企业版 Linux 内核的社区仓库,在系统中导入 ElRepo 仓库的公钥,后续将从这个仓库中获取升级内核相关的资源。
安装 ELRepo
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm -y
查看可用的稳定版镜像,kernel-ml 为长期稳定版本,lt 为长期维护版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
安装最新版内核
yum --enablerepo=elrepo-kernel install kernel-ml
查看当前系统已安装内核
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
输出如下:
0 : CentOS Linux (6.4.4-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-50b45075da234bada83ae0fa8afa5d20) 7 (Core)
切换内核启动
修改/etc/default/grub 文件中配置项 GRUB_DEFAULT=0,上面输出最新的内核序号是0,所以设置为0。
vim /etc/default/grub
重新配置内核参数
grub2-mkconfig -o /boot/grub2/grub.cfg
重启
reboot
主机免密配置,在k8s-master-1主机上操作
⼀直回⻋就⾏
ssh-keygen -t rsa
等待一会,然后输入 yes,再输入各主机的密码即可
在 /root/ 目录下执行
for i in k8s-master-1 k8s-master-2 k8s-master-3 k8s-node-1 k8s-node-2;do ssh-copy-id -i .ssh/id_rsa.pub $i;done
做个快照
选取某个虚拟机服务器做个快照,如果出现问题好恢复、克隆。
参考博客: https://blog.csdn.net/weixin_46560589/article/details/126008579
评论区