要搭建的目标构架为一个 Master节点和一个Node节点。
0 环境要求
0.1 硬件要求
| 序号 | 硬件 | 要求 |
|---|---|---|
| 1 | cpu | 至少2核 |
| 2 | 内存 | 至少3G |
| 3 | 硬盘 | 至少40G |
0.2 系统要求
linux内核版本应在4.0以上
查看linux内核版本
cat /proc/version
如果低于4.0,则需要进行升级。
- 配置阿里云yum源
# 1.下载安装wget
yum install -y wget
# 2.备份默认的yum
mv /etc/yum.repos.d /etc/yum.repos.d.backup
# 3.设置新的yum目录
mkdir -p /etc/yum.repos.d
# 4.下载阿里yum配置到该目录中,选择对应版本
wget -O /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-7.repo
# 5.更新epel源为阿里云epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 6.重建缓存
yum clean all
yum makecache
# 7.看一下yum仓库有多少包
yum repolist
yum update
- 升级系统内核
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install -y kernel-lt
grub2-set-default 0
reboot
升级完成后,再次查看内核版本
cat /proc/version
1 服务器设置
1.1 添加网桥过滤和地址转发功能
vi /etc/sysctl.conf
在文件末尾添加如下内容
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1
net.ipv4.ip_forward=1
net.ipv4.ip_forward_use_pmtu = 0
生效命令
sysctl --system
查看效果
sysctl -a|grep "ip_forward"
1.2 禁用swap分区
- 临时关闭
swapoff -a
- 永久关闭
vi /etc/fstab
注释掉下面的设置
/dev/mapper/centos-swap swap
- 确认关闭
free -m
若swap行都显示 0 则表示关闭成功
2 安装Docker
安装yum工具包和存储驱动
yum install -y yum-utils
设置镜像的仓库
#推荐使用国内的,阿里云docker镜像
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
注意:docker-ce 社区版,docker-ee是企业版,使用社区版足够。
yum install docker-ce docker-ce-cli containerd.io
在/etc/docker目录下创建daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://registry.docker-cn.com"]
}
启动docker服务
systemctl daemon-reload
systemctl restart docker
如果docker启动失败,如下图
则需要执行以下指令,修改 daemon.json 文件名
mv daemon.json daemon.conf
然后再重新启动docker
systemctl restart docker
安装后查看版本
docker -v
docker info
设置开机自启
systemctl enable docker && systemctl start docker
3 K8s镜像源设置
创建k8s镜像源文件
vi /etc/yum.repos.d/kubernetes.repo
在镜像源文件中输入如下内容并保存
[kubernetes]
name=Kubernetes
baseurl=mirrors.aliyun.com/kubernetes/…
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=mirrors.aliyun.com/kubernetes/… mirrors.aliyun.com/kubernetes/…
更新并重建缓存
yum clean all
yum -y makecache
4 安装kubeadm、kubelet和kubectl
yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0
设置kubelet开机启动
systemctl enable kubelet
5 部署K8s
仅需在master节点上执行
kubeadm init \
--apiserver-advertise-address=192.168.137.3 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all
6 部署k8s失败的处理
- 删除初始化过程中产生的临时文件
rm -rf /etc/kubernetes/*
rm -rf ~/.kube/*
rm -rf /var/lib/etcd/*
- 杀掉占用端口的进程
lsof -i :6443|grep -v "PID"|awk '{print "kill -9",$2}'|sh
lsof -i :10250|grep -v "PID"|awk '{print "kill -9",$2}'|sh
lsof -i :10257|grep -v "PID"|awk '{print "kill -9",$2}'|sh
lsof -i :10259|grep -v "PID"|awk '{print "kill -9",$2}'|sh