1.1 检查CPU/内存/网络设置
对虚拟机的要求(必须):
CPU:最少2核
内存:master >=4G,node >=3G
网络:NAT模式
操作系统版本:
Docker 要求 CentOS 系统的内核版本必须高于 3.10。 如果内核版本为3.10,则发行编号最好能升级到1127, 即:3.10.0-1127。
我们可以通过uname -r 命令查看当前系统的内核版本:
[root@sq ~]# uname -r
3.10.0-1127.19.1.el7.x86_64
我这个也是符合的
1.2 设置固定IP地址
阿里云上可以忽略这一步
用xshell或者SecureCRT连接阿里云服务器之后记得要ping通百度
1.3 设置主机名
vi /etc/hostname
这一步我们在创建实例的时候就已经设置好了,
我们需要改一个node00------------>master
hostnamectl set-hostname master
改了以后查看vi /etc/hostname发现里面也已经成功改为了master
为保险起见,阿里云也要修改主机名,并且重启,否则vi /etc/hosts里面仍然是node00
1.4 设置解析hosts值(三台设置相同)
当有多个服务器需要安装相同的软件服务时,每个服务都需要去执行相同的命令很繁琐,而且可能会在某台执行时漏掉点什么。所以同步执行命令很重要
链接: SecureCRT同步执行命令
vi /etc/hosts
追加内容如下(阿里云用私网):
172.21.188.188 master master
172.21.188.189 node1 node1
172.21.188.190 node2 node2
151.101.108.133 raw.githubusercontent.com
1.5 关闭防火墙
检查防火墙的状态
systemctl status firewalld
临时关闭防火墙
systemctl stop firewalld
开机禁用防火墙
systemctl disable firewalld
1.6 关闭swap和关闭selinux
运行以下命令,关闭swap空间
swapoff -a && sed -i '/swap/ s$^\(.*\)$#\1$g' /etc/fstab
kubelet 在 1.8 版本以后强制要求 swap 必须关闭。 运行以下命令,关闭selinux
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
1.7 修改docker配置文件(不存在请新增)
vi /etc/docker/daemon.json
{
"registry-mirrors":
["https://v2c6fjn8.mirror.aliyuncs.com"],
"exec-opts":
["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
参数说明如下:
registry-mirrors,阿里云镜像加速地址
exec-opts, 由于安装kubernetes的过程中,会出现 文件驱动默认由systemd改成cgroupfs, 而我们安装 的docker使用的文件驱动是systemd, 造成不一致, 导致镜像无法启动。所以需要修改。第一种方式是修 改docker,另外一种方式是修改kuberatis。附:使用 docker info查看
log-driver , 日志文件格式
log-opts 的max-size,日志文件,最大100M storage-driver 存储驱动程序
1.8 配置k8s的镜像加速
安装kubernetes的时候,需要安装kubelet, kubeadm等 包,但k8s官网给的yum源是 packages.cloud.google.com,国内访问不了,因此我们可以使用阿里云的yum仓库镜像。
先查看一下是否存在:
cat /etc/yum.repos.d/kubernetes.repo
如果不存在,则运行(注意前面的行号,一行完了再回车换行,否则会报语法错误):
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
exclude=kube*
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
参数说明如下:
enable 是否启用该仓库,1表示启用
gpgcheck 是否验证从该仓库获得程序包的合法性 1 为验证
repo_gpgcheck 是否验证元数据的合法性 元数据就 是程序包列表 1为验证
1.9 安装k8s并启动
运行以下代码,安装kubelet、kubeadm、kubectl三大组
件
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0 --disableexcludes=kubernetes
参数说明:
disableexcludes选项:禁掉除kubernetes这个之外的 别的仓库
执行结果图下图所示:
运行以下代码,设置kubelet开机启动,同时启动kubelet
systemctl enable kubelet && systemctl start kubelet
1.10 修改网络配置
设置iptables 网桥参数,添加内核参数文件 :
vi /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
运行以下命令,使上述设置生效:
sysctl -p /etc/sysctl.d/k8s.conf
sysctl --system
1.11 修改配置后,重启kubelet服务
systemctl restart kubelet
1.12 修改通讯协议(如果是Centos8,请修 改)
注意Centos8 才修改,Centos7请忽略该步骤。
vi /etc/crypto-policies/back- ends/opensslcnf.config
把:MinProtocol = TLSv1.2 改为 MinProtocol = TLSv1.1
修改后如下所示:
CipherString = @SECLEVEL=2:kEECDH:kRSA:kEDH:kPSK:kDHEPSK :kECDHEPSK:- aDSS:-3DES:!DES:!RC4:!RC2:!IDEA:- SEED:!eNULL:!aNULL:!MD5:-SHA384:- CAMELLIA:-ARIA:-AESCCM8
Ciphersuites = TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1 305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES _128_CCM_SHA256
MinProtocol = TLSv1.1
MaxProtocol = TLSv1.3
1.13 安装NFS
NFS(network file system)网络文件系统,类似于 Windows中的共享文件夹。我们在部署mysql数据库或 者其他服务时,可能需要在多台服务器之间共享数据, 因此,我们这里需要安装nfs-utils工具。
Centos7操作系统:
yum install nfs-common nfs-utils -y
Centos8操作系统:
dnf install nfs-utils nfs4-acl-tools
这里仅安装,后面用到时再做设置。
1.14 安装Docker
安装Docker是必须的,有关Docker的安装,我们再其他 教程中已经介绍过,这里不再赘述。以下仅列出关键的 安装步骤
centos7下,安装Docker的步骤主要有以下七步:
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-
ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
systemctl start docker
systemctl enable docker
docker version
注意,如果虚拟机以前安装过Docker,此步骤可以省 略
总结:以上的所有操作,Master节点和Node节点都是需 要设置的