2.1 基本环境配置

读者需自行准备5台具有2核CPU和4GB以上内存的服务器,系统为CentOS 7.x。如果没有这么多的机器,可以只安装3台Master或者一台Master、两台Node。

集群采用的服务器IP规划如表2.1所示。

表2.1 高可用Kubernetes集群规划

Kubernetes一共涉及三个网段,一个是宿主机的网段,也就是上述的10.0.0.x,同时需要Pod和Service的网段,三者的网段不可交叉。

安装配置信息如表2.2所示。

表2.2 安装配置信息

注意

宿主机网段、K8s Service网段、Pod网段不能重复。

所有节点配置主机名(其他节点名称自行更改):

     # hostnamectl set-hostname k8s-master01

所有节点配置hosts,修改/etc/hosts如下:

     # cat /etc/hosts
     10.0.0.201 k8s-master01
     10.0.0.202 k8s-master02
     10.0.0.203 k8s-master03
     10.0.0.204 k8s-node01
     10.0.0.205 k8s-node02

所有节点配置Docker和默认yum源:

所有节点安装一些常用的工具:

     # yum install wget jq psmisc vim net-tools telnet git -y

所有节点关闭防火墙、SELinux、DNSmasq:

     # systemctl disable --now firewalld
     # systemctl disable --now dnsmasq
     # systemctl disable --now NetworkManager
     
     # setenforce 0
     # sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
     # sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

所有节点关闭Swap分区:

     # swapoff -a && sysctl -w vm.swappiness=0
     # sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab

所有节点安装ntpdate(如果公司的服务器已经配置了自动同步时间,关于时间的配置可以不用操作):

     # rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm
     # yum install ntpdate -y

所有节点同步时间:

     # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
     # echo 'Asia/Shanghai' >/etc/timezone
     # ntpdate time2.aliyun.com
     # 加入到crontab
     # */5 * * * * /usr/sbin/ntpdate time2.aliyun.com

所有节点配置limit:

     # ulimit -SHn 65535
     # vim /etc/security/limits.conf
     # 末尾添加如下内容
     * soft nofile 65536
     * hard nofile 131072
     * soft nproc 65535
     * hard nproc 655350
     * soft memlock unlimited
     * hard memlock unlimited

安装过程中,生成配置文件和证书均在Master01上操作,所以Master01节点需要免密钥登录其他节点,之后将文件传送到其他节点。

集群管理也在Master01上操作(也可以是其他单独的节点)。配置密钥(只在Master01或管理节点操作,以下步骤将管理节点和Master01统称为Master01):

Master01下载安装所有的源码文件:

     # cd /root/ ; git clone https://gitee.com/dukuan/k8s-ha-install.git

所有节点升级系统并重启:

     # yum update -y  && reboot