Rancher2.6与RKE2安装记录与总结

接上文 CentOS7.7-mini版安装rancher2.x并初始化

一、服务器主机名规划

  • rancher集群编排节点
  • k8s-control 集群控制节点
  • k8s-etcd集群编排数据存储节点
  • k8s-work 集群工作计算节点
  • k8s-data 集群工作数据存储节点
  • docker-1 非集群计算与数据存储节点

二、服务器硬件环境规划

所有主机分为系统盘与数据盘,各自承担不同职责与IO压力,数据盘的IO压力不影响节点运行:

  • 系统盘:用于运行系统(linux、windows节点)及k8s系统组件,必须保障集群节点的高效稳定性,不可用于存储(挂载)业务数据,不可出现影响节点稳定的因素存在,如:磁盘IO压力
  • 数据盘:用于存储数据,可能是冷存储只需要更大的存储空间,也可能是热存储需要更高的IO性能,分离数据盘与系统盘可保障在数据盘满IO工作下,不影响k8s节点正常运作

数据盘挂载点,均使用LVM逻辑分区,方便后续无限制扩容

主机名 处理器主频/vCPU 内存 系统盘(GiB) 数据盘(GiB) 内网网络 操作系统
rancher 2.7 GHz * 2 4 40 (10000 IOPS) 50万PPS
带宽2Gbps
centos7.9
docker-1 3.4 GHz * 4 8 40 (10000 IOPS) 200 (15000 IOPS) 50万PPS
带宽2Gbps
centos7.9
k8s-control-etcd-1 3.4 GHz * 4 16 60 (10000 IOPS) 50万PPS
带宽2Gbps
centos7.9
k8s-worker-data-1 2.4 GHz * 14 64 40 (10000 IOPS) 480 (25000 IOPS) 50万PPS
带宽2Gbps
centos7.9
k8s-worker-data-2 2.4 GHz * 14 64 40 (10000 IOPS) 480 (25000 IOPS) 50万PPS
带宽2Gbps
centos7.9
k8s-worker-data-3 2.4 GHz * 14 64 40 (10000 IOPS) 480 (25000 IOPS) 50万PPS
带宽2Gbps
centos7.9

硬件参数说明

主机名 处理器信息 内存信息 硬盘信息 内网地址
rancher Intel® Celeron® CPU G1620 @ 2.70GHz 2*2 1333 MT/s 闪迪120SSD 192.168.0.10
docker-1 Intel® Core™ i5-7500 CPU @ 3.40GHz 8*1 2133 MT/s 金士顿240SSD 192.168.0.11
k8s-control-etcd-1 Intel® Core™ i5-7500 CPU @ 3.40GHz 8*2 2133 MT/s 金士顿240SSD 192.168.0.20
k8s-worker-data-1 Intel® Xeon® CPU E5-2680 v4 @ 2.40GHz 16*4 2133 MT/s 金士顿480SSD 192.168.0.21
k8s-worker-data-2 Intel® Xeon® CPU E5-2680 v4 @ 2.40GHz 16*4 2133 MT/s 金士顿480SSD 192.168.0.22
k8s-worker-data-3 Intel® Xeon® CPU E5-2680 v4 @ 2.40GHz 16*4 2133 MT/s 金士顿480SSD 192.168.0.23

三、服务器初始化

集群环境定义

名称 版本 说明
Rancher 2.6.8
Kubernetes rke2集群:1.23.10 使用container而非docker
Docker docker-ce:20.10.16 rke2集群节点不需要

配置服务器静态网络地址

vi /etc/sysconfig/network-scripts/ifcfg-e 按tab补全网卡名称

BOOTPROTO=static 设置为静态网络
ONBOOT=yes 
IPADDR=192.168.0.10  # ranche节点设置为ip
IPADDR=192.168.0.11  # docker-1节点设置为ip
IPADDR=192.168.0.20  # k8s-control-etcd-1节点设置为ip
IPADDR=192.168.0.21  # k8s-worker-data-1节点设置为ip
IPADDR=192.168.0.22  # k8s-worker-data-2节点设置为ip
IPADDR=192.168.0.23  # k8s-worker-data-3节点设置为ip
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=223.5.5.5
DNS2=223.6.6.6

service network restart

配置yum源

  1. 备份yum资源配置文件

    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

  2. 下载新的CentOS-Base.repo 到/etc/yum.repos

    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

  3. 运行yum makecache生成缓存

    yum makecache

设置主机名

参考

Kubernetes节点主机名不能重复,所以我们需要修改:

  1. 查看主机名
    hostname

  2. 修改主机名
    因为K8S的规定,主机名只支持包含 -. (中横线和点)两种特殊符号,并且主机名不能出现重复。
    hostnamectl set-hostname 主机名

  3. 查看主机名
    hostname
    hostnamectl

  4. 重启
    reboot

  5. 再次查看

时间同步

安装ntpdate工具

yum -y install ntp ntpdate

所有节点设置ntp服务开启启动

sudo systemctl start ntpd       # 启动ntp服务
sudo systemctl enable ntpd      # 设置ntp服务开机启动

所有节点启动时间同步

timedatectl set-ntp yes

同步节点时间

ntpdate ntp1.aliyun.com         # rancher节点同步互联网的时间
ntpdate 192.168.0.10            # 其他节点同步rancher节点的时间

时间写入硬件

hwclock --systohc
hwclock -w

四、Docker单节点部署Rancher

安装docker

安装docker-ce

curl https://releases.rancher.com/install-docker/20.10.sh | sh

配置docker镜像加速器

修改daemon配置文件/etc/docker/daemon.json来使用加速器:阿里云提供专属加速器地址

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://你自己的专属加速地址.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

启动服务并设置开机自启

systemctl start docker && systemctl enable docker

卸载docker(参考命令,需要时使用)

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
sudo yum remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

Rancher单节点部署

docker run -d --privileged --restart=unless-stopped   -p 80:80 -p 443:443  --name=rancher \
  -v /opt/pvc/local/rancher:/var/lib/rancher \
  -e CATTLE_AGENT_IMAGE="registry.cn-hangzhou.aliyuncs.com/rancher/rancher-agent:v2.6.8" \
  registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.6.8

获得默认密码:

docker logs  rancher  2>&1 | grep "Bootstrap Password:"

国内镜像源初始化:registry.cn-hangzhou.aliyuncs.com,2.5的文档,2.6也可以参考:如何在国内使用 Rancher

  • 配置system-default-registry
  • 配置Chart 仓库

Rancher升级(参考命令,需要时使用)

docker pull registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.6.8
docker stop rancher
docker create --volumes-from rancher --name rancher-data-v2.6.5 registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.6.5
docker create --volumes-from rancher --name rancher-data-snapshot-v2.6.5 registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.6.5
docker run -d -p 80:80 -p 443:443 \
  --restart=unless-stopped --privileged --name=rancher2.6.8 \
  --volumes-from rancher-data-v2.6.5 \
  registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.6.8

登录rancher,通过检查浏览器左下角显示的版本,确认是否升级成功。
删除旧版本Rancher Server容器

docker rm rancher

五、k8s集群节点初始化准备

清理环境(参考命令,需要时使用)

  • rke清理脚本
  • rke2清理脚本

清理脚本清理命令都执行,没脚本下载脚本后再执行

sh clear-k8s.sh
/usr/local/bin/rke2-uninstall.sh

rke2集群搭建时,人工再度确认/var/lib/etc/opt等目录下,是否还要rancher、docker、k3s、kubernetes、containerd等rancher与k3s、k8s等残留信息

服务器环境配置

NetworkManager配置

vi /etc/NetworkManager/conf.d/rke2-canal.conf

[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:flannel*

systemctl reload NetworkManager

Wicked配置

vi /etc/sysctl.d/90-rke2.conf

net.ipv4.conf.all.forwarding=1
net.ipv6.conf.all.forwarding=1

开启网络转发

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

配置docker镜像加速器(参考命令,需要时使用)

方式一(推荐):

vi /etc/rancher/rke2/registries.yaml

mirrors:
  docker.io:
    endpoint:
      - "https://你自己的专属加速地址.mirror.aliyuncs.com"

重启节点使配置生效(不同节点用不同命令):

systemctl restart rke2-server.service
systemctl restart rke2-agent.service

方式二:

mkdir -p /etc/containerd && chmod -R 755 /etc/containerd
vi /etc/containerd/config.toml
[plugins.cri.registry]
  [plugins.cri.registry.mirrors]
    [plugins.cri.registry.mirrors."docker.io"]
      endpoint = ["https://你自己的专属加速地址.mirror.aliyuncs.com"]

systemctl restart containerd

六、创建RKE2集群

在Rancher UI中创建RKE2集群:

Rancher2.6与RKE2安装记录与总结_第1张图片

  • Kubernetes 版本:v1.23.10+rke2r1
  • 默认容器网络:calico
  • 国内镜像加速:registry.cn-hangzhou.aliyuncs.com

其他配置选择默认即可,根据需要修改,创建完毕rke2集群之后,便是注册k8s节点:

  • 根据开头提到的服务器主机名,提前规划k8s节点工作职责与hostname
  • 根据节点职责,选择对应的节点角色注册至集群

集群节点注册示例:

Rancher2.6与RKE2安装记录与总结_第2张图片

七、集群配置

crictl命令对照docker命令

crictl命令官方对照文档参考

系统相关命令:

docker crictl 作用
docker info crictl info 显示容器相关的系统信息
docker version crictl version 显示容器运行时的版本信息

镜像相关命令:

docker crictl 作用
docker images crictl images 显示本地镜像列表
docker pull crictl pull 下载镜像
docker push 上传镜像
docker rmi crictl rmi 删除本地镜像
docker inspect crictl inspect 查看镜像详情
crictl imagefsinfo 返回镜像文件系统信息

容器相关命令:

docker crictl 作用
docker ps crictl ps 显示容器列表
docker create crictl create 创建容器
docker run crictl run 运行容器
docker start crictl start 启动容器
docker stop crictl stop 停止容器
docker update crictl update 更新容器
docker rm crictl rm 删除容器
docker inspect crictl inspect 查看容器详情
docker attach crictl attach 连接到容器中
docker exec crictl exec 进入容器内部
docker logs crictl logs 查看容器日志
docker stats crictl stats 查看容器监控状态

相关命令作用:

docker crictl 作用
crictl pods 显示 pod 列表
crictl inspectp 查看 pod 详情
crictl runp 运行pod
crictl rmp 删除 Pod
crictl stopp 停止 Pod
crictl port-forward 将本地端口转发到 Pod

映射crictl

rke2containerd容器运行时,需要做crictl命令映射

control节点映射crictl与kubectl

配置环境变量:

vi /etc/profile.d/rancher_env.sh

export KUBECONFIG=/etc/rancher/rke2/rke2.yaml
export CONTAINER_RUNTIME_ENDPOINT="unix:///var/run/k3s/containerd/containerd.sock"

配置软链接:

source /etc/profile.d/rancher_env.sh && 
ln -s /var/lib/rancher/rke2/bin/crictl /usr/local/bin/crictl && 
ln -s /var/lib/rancher/rke2/bin/kubectl /usr/local/bin/kubectl

worker节点映射crictl

配置环境变量:

vi /etc/profile.d/rancher_env.sh

export CONTAINER_RUNTIME_ENDPOINT="unix:///var/run/k3s/containerd/containerd.sock"

配置软链接:

source /etc/profile.d/rancher_env.sh && 
ln -s /var/lib/rancher/rke2/bin/crictl /usr/local/bin/crictl

你可能感兴趣的:(#,rancher,#,kubernetes,docker,kubernetes,rancher,rke2,crictl)