K8S安装部署(v1.27.6)
一、机器配置
系统版本 | 主机名 | IP | 基于服务 |
---|---|---|---|
centos 7.9 | k8s-master | 192.168.163.104 | docker |
k8s-node1 | 192.168.163.105 | ||
k8s-node2 | 192.168.163.106 |
注:以上3台机器都是2C4G的虚拟机,仅供测试使用
docker部署可以参考:docker 部署
二、其他环境配置
#1、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld#2、关闭Selinux
setenforce 0
vim /etc/sysconfig/selinux
SELINUX=disabled #将此处改为disabled#3、禁用swap交换分区(重启服务器生效)
swapoff -a #临时禁用swap
vim /etc/fstab #打开自动挂载的配置文件,将swap配置项注释掉
#/dev/mapper/centos-swap swap swap defaults 0 0
free -m #查看下swap交换区是否都为0,如果都为0则swap关闭成功#4、重启docker服务
systemctl daemon-reload
systemctl restart docker#5、设置时间同步
yum install ntpdate -y
ntpdate time.windows.com#6、设置主机名
#注意每个节点的名字要不一样
hostnamectl set-hostname k8s-master#7、 配置hosts
vim /etc/hosts
192.168.163.104 k8s-master
192.168.163.105 k8s-node1
192.168.163.106 k8s-node2#8、配制iptables规则
#如果不配置 后面可能会报错:
#error execution phase preflight: [preflight] Some fatal errors occurred:
# [ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: #/proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1
#[preflight] If you know what you are doing, you can make a check non-fatal with `--#ignore-preflight-errors=...`iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT#设置系统参数
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# 网桥生效
sysctl --system
三、Centos7内核升级(所有节点)
CentOS 7.x 系统自带的 3.10.x 内核存在一些 Bugs,导致运行的 Docker、Kubernetes 不稳定,还有会造成kube-proxy不能转发流量
正常升级流程如下:
#查看现在的内核版本
[root@k8s-master ~]# uname -a
Linux k8s-master 3.10.0-1160.71.1.el7.x86_64 #1 SMP Tue Jun 28 15:37:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux#查看 yum 中可升级的内核版本
yum list kernel --showduplicates
#如果list中有需要的版本可以直接执行 update 升级,多数是没有的,所以要按以下步骤操作#导入ELRepo软件仓库的公共秘钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org#Centos7系统安装ELRepo
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
#Centos8系统安装ELRepo
yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm#查看ELRepo提供的内核版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
yum --enablerepo=elrepo-kernel list available | grep kernel#ker