提醒:本文最后更新于 2021-01-25,文中所述内容可能发生改变,请自行核实。
环境要求
系统
- 纯净 CentOS 7.x 及以上
- 机器配置 2 核 4G 以上 3台及以上
- 服务器网络互通
- 禁止 Swap 分区
软件
环境安装
yum install -y wget net-tools
关闭防火墙
systemctl stop firewalld & systemctl disable firewalld
关闭 SELinux
vi /etc/selinux/config 文件中设置 SELINUX=disabled ,重启服务器
setenforce 0 & sed -i 's/enforcing/disabled/' /etc/selinux/config
关闭 Swap
如果服务器配置低,可以不关闭 swap,后续忽略相应报错即可
swapoff -a & sed -i 's/.swap./#&/' /etc/fstab</code>
#### 修改 Hosts
<code>cat > /etc/hosts << EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.103 master
192.168.1.104 node1
192.168.1.105 node2
EOF
时间同步
yum install -y ntpdate & ntpdate ntp.aliyun.com
echo '/5 * /usr/sbin/ntpdate -u ntp.aliyun.com' >>/var/spool/cron/root
systemctl restart crond
crontab -l
搭建
安装 Docker
1)配置 Docker 的 yum 仓库(阿里云仓库)
yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
2)查找并安装指定版本 Docker(确定 K8S 支持的 Docker 版本)
yum list docker-ce.x86_64 --showduplicates | sort -r
yum -y install docker-ce-19.03.11 docker-ce-cli-19.03.11 containerd.io-1.2.13
systemctl enable docker & systemctl start docker
3)修改 Docker 的 Cgroup Driver 为 systemd(确保服务器节点在资源紧张的情况更加稳定)
mkdir /etc/docker
touch /etc/docker/daemon.json
cat > /etc/docker/daemon.json << EOF
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl daemon-reload & systemctl restart docker
docker info | grep Cgroup
安装 kubeadm
1)配置 kubenetes 的 yum 仓库
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
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
2)安装 kubelat、kubectl、kubeadm
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
初始化 Master
1)配置忽略 Swap 报错
vi /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
2)初始化 Master
仅在 Master 节点执行