k8s的集群搭建-初始环境规划及实施

935 阅读2分钟

这是我参与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. 环境准备要求:

  1. 操作系统: centos7
  2. 硬件配置: 2GB以上,2个CPU,硬盘30G以上
  3. 集群中所有机器可以互相通信
  4. 可以访问外网,拉取镜像
  5. 禁止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 时间同步

yuminstallntpdateyyum install ntpdate -y 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版本,后期可以在持续做优化。