一、安装前准备工作
1.1 环境
需在每个节点都进行操作,可以使用xshell工具分屏进行批量操作。
1.2 升级linux内核
#导入ELRepo仓库的公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#为yum安装ELRepo仓库
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
#查看可用版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
#安装最新内核
yum --enablerepo=elrepo-kernel install kernel-ml
# 查看当前可用内核
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
#升级
grub2-set-default 0
1.3 时间同步
#查看系统时间
timedatectl
#设置北京时间
timedatectl set-timezone Asia/Shanghai
#安装ntp服务
yum install -y ntp
#修改ntp相关参数,修改成如下内容
vi /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes
OPTIONS="-g -x"
#启动ntp服务,开机自启动
systemctl restart ntpd && systemctl enable ntpd
#设置linux系统时间宇远程ntp服务器同步
1.4 Hostname设置
#修改主机名
sudo hostnamectl set-hostname k8smaster
#bash生效
bash
#重启
reboot
1.5 hosts设置
#修改hosts文件
vim /etc/hosts
172.16.5.222 k8smaster
172.16.5.223 k8sworker01
172.16.5.224 k8sworker02
172.16.5.225 k8sworker03
172.16.5.221 rancher
1.6 关闭防火墙,selinux
# 关闭防火墙
systemctl stop firewalld
# 关闭防火墙开机启动
systemctl disable firewalld
#关闭selinux
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
reboot
1.7 关闭swap
# 临时
swapoff -a
# 永久
sed -ri 's/.*swap.*/#&/' /etc/fstab
1.8 安装docker
yum install -y yum-utils
# 添加yum源,这里添加的是阿里云的yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 查看docker版本
yum list docker-ce --showduplicates | sort -r
# 您可以选择其他版本
yum -y install docker-ce-20.10.12-3.el7
# 设置国内镜像加速,你也可以用自己的仓库镜像,这里是我申请的阿里云个人加速镜像
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://fuchp8pk.mirror.aliyuncs.com"]
}
EOF
# 导入镜像设置
systemctl daemon-reload
# 启动docker
systemctl restart docker
# 设置docker开机启动
systemctl enable docker
二、安装rancher
2.1 部署rancher
自行选择安装rancher版本,rancher平台地址:ip:8443
docker run -d --restart=unless-stopped -p 8080:80 -p 8443:443 -v /opt/rancher/data:/var/lib/rancher --privileged rancher/rancher:v2.6.3
# 找到您的容器ID
docker ps
# 找到密码
docker logs ${container-id} 2>&1 | grep "Bootstrap Password:"
三、安装k8s
3.1 安装k8s集群
通过RKE的方式安装k8s,在rancher里面创建自定义k8s集群,如果报错,请重启rancher,自定义项目名称,选择k8s版本,然后选择Control Plane, Etcd复制语句在master执行,选择worker到worker节点上面执行。
3.1.1易错点,重新初始化
如果报错,请在每个节点上面清除安装的残留文件,重启后重新初始化,正常情况下节点会正常初始化成功,如果有报错请检查前面的准备工作是否完成,细节点。如果有问题请清理残余文件重新初始化。
docker stop $(docker ps -aq)
docker system prune -f
docker volume rm $(docker volume ls -q)
docker image rm $(docker image ls -q)
rm -rf /etc/ceph \
/etc/cni \
/etc/kubernetes \
/opt/cni \
/opt/rke \
/run/secrets/kubernetes.io \
/run/calico \
/run/flannel \
/var/lib/calico \
/var/lib/etcd \
/var/lib/cni \
/var/lib/kubelet \
/var/lib/rancher/rke/log \
/var/log/containers \
/var/log/pods \
/var/run/calico
四、安装kutectl
#下载最新版本:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
#验证二进制文件(可选)
#下载 kubectl 校验和文件:
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
#根据校验和文件验证 kubectl 二进制文件:
echo "$(<kubectl.sha256) kubectl" | sha256sum --check
如果有效,则输出为:
kubectl: OK
#安装 kubectl
install -o root -g root -m 0755 kubectl /usr/bin/kubectl
#测试以确保您安装的版本是最新的:
kubectl version --client
#将rancher集群中kubeconfig的内容复制到服务器config中
mkdir -p $HOME/.kube
vi $HOME/.kube/config #粘贴复制的内容
#测试kubectl
kubectl get node
下载文件传入到主节点 $HOME/.kube/config