这是我参与11月更文挑战的第4天,活动详情链接查看:2021最后一次更文挑战
1. 搭建k8s环境平台的规划
平台规划分为两种:
单master集群
缺点: master是单点,如果master挂掉后,就无法再去管理node;所以生成中我们一般用多master的方式。
多master集群
2. 服务器硬件配置要求
1)硬件要求
测试环境: master: 2c 4G 20G硬盘 node: 4C 8G 40G硬盘
生产环境: master: 8c 16G 100G硬盘 node : 16C 32G 1T
3.搭建k8s集群部署方式
a. kubeadm 方式 用很短时间把我们的k8s集群快速搭建出来。
b. 二进制包方式 从github中下载发行版的二进制包,手动部署每个组件,组成kubernetes;
这种方式便于排错。
4. 部署环境搭建
a. 环境准备要求:
- 操作系统: centos7
- 硬件配置: 2GB以上,2个CPU,硬盘30G以上
- 集群中所有机器可以互相通信
- 可以访问外网,拉取镜像
- 禁止swap分区 (不禁止swap分区,搭建起来容易报错)
b. 三台物理机的基础配置:
c. ip及角色分配
角色 IP k8s-master 192.168.1.17 k8s-node1 192.168.1.18 k8s-node2 192.168.1.63
d. 系统初始化
d1 关闭防火墙
[root@oldxin-master17 ~]# systemctl stop firewalld
[root@oldxin-master17 ~]# systemctl disable firewalld
d2 关闭selinux
[root@oldxin-master17 ~]# sed -i 's/enforcing/disabled/' /etc/selinux/config
d3 关闭swap
[root@oldxin-master17 ~]# swapoff -a (临时设置)
永久设置需要进入 /etc/fstab
d4 设置主机名
hostnamectl set-hostname
d5 在master里添加hosts
cat >> /etc/hosts << EOF
192.168.1.17 k8s-master
192.168.1.18 k8s-node1
192.168.1.63 k8s-node2 EOF
d6 将桥接的 IPv4 流量传递到 iptables 的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-iptables = 1
EOF
$ sysctl --system # 生效
d7 时间同步
ntpdate time.windows.com
为了方便初学者操作,系统初始化步骤可以直接使用以下脚本;
复制粘贴即可:
[root@oldxin-master17 ~]# cat csh.sh
#!/bin/bash
systemctl stop firewalld
systemctl disable firewalld
#sed -i 's/enforcing/disabled' /etc/selinux/config
sed -i 's/enforcing/disabled/' /etc/selinux/config
swapoff -a
read -p "是否要修改主机名y/n?: " enter
if [ $enter == y ];then
read -p "输入你想要的主机名: " name
hostnamectl set-hostname $name
else
echo "好的,主人,本次暂不修改"
sleep 3
fi
cat >/etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
EOF
sysctl --system
rpm -qa |grep ntp
if [ $? -ne 0 ]; then
yum install ntpdate -y
else
echo "ntp 已经安装,无需再次安装"
fi
ntpdate time.windows.com
注意: 三台机器都需要执行脚本哦
总结:
三台服务器组成的架构,三台都需要安装,可以直接执行脚本,当然脚本并没有做进一步的优化,相当于v1版本,后期可以在持续做优化。