一、安装前准备工作

1.1 环境

机器名

IP地址

部署内容

rancher

172.16.5.221

rancher

k8smaster

172.16.5.222

Control Plane, Etcd

k8sworker01

172.16.5.223

worker

k8sworker02

172.16.5.224

worker

k8sworker03

172.16.5.225

worker

需在每个节点都进行操作,可以使用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在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

五、测试安装nginx工作负载

在这里插入图片描述在这里插入图片描述在这里插入图片描述