目录
一、k8s环境初始化
注意:所有主机均需操作
1.1 环境准备
服务器要求
- 建议最小硬件配置:2核CPU、4G内存、30G硬盘
- 操作系统要在centos7.5以上
软件环境: - 操作系统:centos7.9
- Docker:27.2.0
- K8s:v1.28.2
服务器规划:
角色IP地址
k8s-master192.168.40.119
k8s-node1192.168.40.120
k8s-node2192.168.40.121
1.2 主机域名解析
为了方便后面集群节点的直接调用,在这配置以下主机域名解析,企业中推荐使用内部DNS服务器
hostnamectl set-hostname k8s-master
cat >> /etc/hosts <<EOF
192.168.40.119 k8s-master
192.168.40.120 k8s-node1
192.168.40.121 k8s-node2
EOF
1.3 时间同步(选装)
k8s要求集群中节点时间必须精确一致,这里直接使用ntp服务从网络同步时间,企业中建议配置内部的时间服务器,优先使用“yum list”确认nptdate服务是否安装若已经安装,则直接配置crontab任务,若本地有ntpdate时钟同步器,则直接与其同步,若可以连接互联网,那么也可以直接与阿里时钟同步器进行时间同步,本实验与阿里时钟同步器进行同步“ntpdate time1.aliyun.com”
检查是否部署ntp服务
yum list |grep ntpdate
若未安装ntp服务,则执行下面安装
```go
yum -y install ntpdate
### 与阿里在线时间进行同步时间
```go
ntpdate time1.aliyun.com
检查crontab内容 ,修改常见crontab命令为“crontab -e”
crontab -l
0 */1 * * * /usr/sbin/ntpdate time1.aliyun.com
1.4 禁用iptables和firewalld服务
kubernetes和docker在运行中会产生大量的iptables规则,为了不让系统规则跟他们混淆,直接关闭系统的规则
systemctl stop firewalld
systemctl disable firewalld
iptables -F
1.5 禁用selinux
selinux是linux系统下一个安全服务,如果不关闭它,在安装k8s集群中会产生各种各样的奇葩问题
# 编辑/etc/selinux/config文件,修改SELINUX的值为disabled
sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 注意修改完毕之后需要重启linux服务
setenforce 0
1.6 禁用swap分区
swap分区指的是虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间虚拟成内存来使用,启用swap设备会对系统的性能产生非常负面的影响,因此kubernetes要求每个节点都要禁用swap设备,但是如果因为某些原因不能关闭swap分区,就需要在集群安装过程中明确的参数进行配置说明
# 临时关闭swap分区
swapoff -a
# 永久关闭swap分区,注意修改完毕之后需要重启linux服务生效
sed -i '/swap/ s/^/#/' /etc/fstab
1.7 修改linux内核参数
# 添加网桥过滤和地址转发功能
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
cat > /etc/sysctl.conf <<EOF
net.ipv4.ip_forward=1
EOF
# 重新加载配置
sysctl -p
# 加载网桥过滤模块
modprobe br_netfilter
# 查看网桥过滤是否加载成功
lsmod|grep br_netfilter
1.8 配置ipvs功能(选装)
在kubernetes中service有两种代理模型,一种是基于iptables的,一种是基于ipvs的,两者比较的话,ipvs性能明显高一些,但是如果要使用它,需要手动载入ipvs模块
# 安装ipset和ipvsadm
yum -y install ipset ipvsadm
# 添加需要加载的模块写入脚本文件
cat <<EOF > /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
# 为脚本文件添加执行权限
chmod +