k8s的的物理架构是master/node模式:
k8s集群至少需要一个主节点(master)和多个工作节点(worker),master节点是集群的控制节点,负责整个集群的管理和控制,主要用于暴露API,调度部署和对节点进行管理,工作接电脑主要是运行容器的
首先要设置静态IP来获取网络,然后更改主机名并写入到/etc/hosts文件,为了实现相互之间通过主机名互相访问,我们设置hd1.com为master
修改主机名的命令为 hostnamectl set-hostname hd1.com && bash
在相互之间配置ssh的免密登录,命令分别为ssh-keygen和ssh-copy-id
关闭交换分区swap来提高性能,三台都要做,有临时关闭和永久关闭
临时:swapoff -a命令
永久:注释掉或者删除
vim /etc/fstab
#/dev/mapper/centos-swap swap swap defaults 0 0
可以通过free进行验证
swap是交换分区,如果机器内存不够,会使用swap分区,但是swap分区的性能较低,k8s设计的时候为了能提升性能,默认是不允许使用交换分区的。Kubeadm初始化的时候会检测swap是否关闭,如果没关闭,那就初始化失败。如果不想要关闭交换分区,安装k8s的时候可以指定--ignore-preflight-errors=Swap来解决
再修改机器的内核参数,三台都要修改
也有简单办法,写成脚本执行,只在master上面做
for i in 2 3;do ssh hd${i}.com modprobe br_netfilter && echo "modprobe br_netfilter" >> /etc/profile && echo -e "net.bridge.bridge-nf-call-ip6tables = 1\nnet.bridge.bridge-nf-call-iptables = 1\nnet.ipv4.ip_forward = 1\n" > /etc/sysctl.d/k8s.conf && sysctl -p /etc/sysctl.d/k8s.conf;done
关闭防火墙,三台都要做
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
这个是主要的一条,修改selinux配置文件之后,重启机器,selinux配置才能永久生效
命令getenforce进行验证,出现Disabled说明成功
脚本执行命令,只在master做
for i in 1 2 3;do ssh hd${i}.com systemctl stop firewalld && systemctl disable firewalld && setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config && echo hd${i}.com;done
脚本方法配置时间服务,只在master做
for i in 1 2 3;do ssh hd${i}.com yum install -y ntpdate && ntpdate cn.pool.ntp.org;done
下图说明我们时间走的还是快了一点
我们还需要开启ipvs模块
首先我们需要一个ipvs.modules压缩包,放到/root下
脚本执行方法
for i in 1 2 3;do scp /root/ipvs.modules hd${i}.com:/etc/sysconfig/modules/ && ssh hd${i}.com bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs && echo -e "-----------------------------\nhd${i}.com";done
下图为加载玩的内容
配置阿里云的repo源,三台都要做
先下载lrzsz openssh-clients
然后把基础repo源备份
在进行下载阿里云的repo源
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/Centos-7.repo
进行查看
在配置阿里云docker的reop源
yum -y install yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
再配置epel源
yum -y install epel-release
配置安装k8s组件需要的阿里云的repo源
安装基础的依赖软件包,三台都要做
yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat conntrack ntpdate telnet ipvsadm
亦可以执行脚本,只在master做
for i in 1 2 3;do ssh hd${i}.com yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat conntrack ntpdate telnet ipvsadm;done
到这里它的准备环境就已经部署完毕