新建虚拟机及前置配置

1、虚拟机及系统版本

  • VMWare15+
  • centOS7

2、安装后静态ip配置

2.1 修改网络配置文件

命令:

vim /etc/sysconfig/network-scripts/ifcfg-eno16777736

修改后的内容如下:

TYPE="Ethernet"
BOOTPROTO="static"	#修改为static
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="d778e1f1-6208-4d49-8c15-32df426daf2b"
DEVICE="eno16777736"
ONBOOT="yes"

IPADDR="192.168.200.110"	#配置ip
NETMASK="255.255.255.0"
GATEWAY="192.168.200.2"
DNS1="192.168.200.2"
DNS2="8.8.8.8"

重启网络服务

service network restart

3、禁用防火墙

3.1 停止firewall

systemctl stop firewalld.service

3.2 查看防火墙状态

firewall-cmd --state

3.3 禁止firewall开机启动

systemctl disable firewalld.service

4、禁用SELinux

建议在主机上禁用SELinux,让容器可以读取主机文件系统

命令:

vim /etc/sysconfig/selinux 

修改后:

# 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

5、关闭swap

swapoff -a

删除swap相关行 /mnt/swap swap swap defaults 0 0 这一行或者注释掉这一行

vim /etc/fstab

查看内存说明

free -m

仅在内存不足的情况下–当剩余空闲内存低于vm.min_free_kbytes limit时,使用交换空间

vim /etc/sysctl.conf

修改内容:

vm.swappiness = 0

使配置生效

sysctl -p

6、配置k8s内核

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system

7、查看cggroup

查看linux是否启用了linux cgroups

cat /boot/config-`uname -r` | grep CGROUP

CONFIG_CGROUPS=y

#CONFIG_CGROUP_DEBUG is not set

CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_HUGETLB=y
CONFIG_CGROUP_PERF=y
CONFIG_CGROUP_SCHED=y
CONFIG_BLK_CGROUP=y

#CONFIG_DEBUG_BLK_CGROUP is not set

CONFIG_NETFILTER_XT_MATCH_CGROUP=m
CONFIG_NET_CLS_CGROUP=y
CONFIG_NETPRIO_CGROUP=m

7.1、检查CGROUP参数

确认是否开启CONFIG_CGROUP_PIDS=y

7.2、查看当前内核版本

uname -r
uname -a
cat /etc/redhat-release

7.3、升级内核(若内核4+,可忽略该步骤)

7.3.1、更新yum源仓库
yum -y update
7.3.2、启用 ELRepo 仓库

ELRepo 仓库是基于社区的用于企业级 Linux 仓库,提供对 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 发行版(CentOS、Scientific、Fedora 等)的支持。
ELRepo 聚焦于和硬件相关的软件包,包括文件系统驱动、显卡驱动、网络驱动、声卡驱动和摄像头驱动等。

  • 导入ELRepo仓库的公共密钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  • 安装ELRepo仓库的yum源
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
7.3.3、查看可用的系统内核包
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
7.3.4、安装最新版本内核
yum --enablerepo=elrepo-kernel install kernel-ml

--enablerepo 选项开启 CentOS 系统上的指定仓库。默认开启的是 elrepo,这里用 elrepo-kernel 替换。

7.3.5、设置 grub2

内核安装好后,需要设置为默认启动选项并重启后才会生效

查看系统上的所有可用内核

sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

设置新的内核为grub2的默认版本

服务器上存在4 个内核,我们要使用最新版本,可以通过 grub2-set-default 0 命令或编辑 /etc/default/grub 文件来设置

方法1、通过 grub2-set-default 0 命令设置

grub2-set-default 0

其中 0 是上面查询出来的可用内核

方法2、编辑 /etc/default/grub 文件

vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

生成 grub 配置文件并重启

grub2-mkconfig -o /boot/grub2/grub.cfg
7.3.6、一键部署脚本
#!/bin/bash
yum -y update
if [ $? = 0 ];then
echo "更新yum源仓库完成"
else
echo "更新yum源仓库失败,正在退出..."
exit 1
fi
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
if [ $? = 0 ];then
echo "导入ELRepo仓库的公共密钥完成"
else
echo "导入ELRepo仓库的公共密钥失败,正在退出..."
exit 1
fi
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
if [ $? = 0 ];then
echo "安装ELRepo仓库的yum源完成"
else
echo "安装ELRepo仓库的yum源失败,正在退出..."
exit 1
fi
yum -y --enablerepo=elrepo-kernel install kernel-ml
if [ $? = 0 ];then
echo "安装最新版本内核完成"
else
echo "安装最新版本内核失败,正在退出..."
exit 1
fi
grub2-set-default 0
if [ $? = 0 ];then
echo "设置最新版本内核完成"
else
echo "设置最新版本内核失败,正在退出..."
exit 1
fi
grub2-mkconfig -o /boot/grub2/grub.cfg
if [ $? = 0 ];then
echo "设置 grub2完成"
else
echo "设置 grub2失败,正在退出..."
exit 1
fi
echo "查看系统上的所有可用内核:"
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

8、重启Linux

reboot

9、验证

uname -r

10、删除旧内核(可选)

查看系统中全部的内核:

rpm -qa | grep kernel

方法1、yum remove 删除旧内核的 RPM 包

yum remove <包名>

方法2、yum-utils 工具

如果安装的内核不多于 3 个,yum-utils 工具不会删除任何一个。只有在安装的内核大于 3 个时,才会自动删除旧内核。

安装yum-utils

yum install yum-utils

删除旧版本

package-cleanup --oldkernels
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐