侧边栏壁纸
博主头像
jack

日拱一卒无有尽,功不唐捐终入海

  • 累计撰写 25 篇文章
  • 累计创建 13 个标签
  • 累计收到 6 条评论

目 录CONTENT

文章目录

第二篇——kubernetes二进制高可用部署——5台服务器初始化配置

jack
2023-07-10 / 0 评论 / 0 点赞 / 466 阅读 / 1,532 字 / 正在检测是否收录...

k8s二进制高可用部署系列文章集合

  1. 第一篇——kubernetes二进制高可用部署——环境和工具准备
  2. 第二篇——kubernetes二进制高可用部署——5台服务器初始化配置
  3. 第三篇——kubernetes高可用部署

注意以下命令 均以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

image-1691735789867

重启服务器

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

image-1689001474000

下载常用命令

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

image-1689862884602

重新配置内核参数

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

0

评论区