接上文 CentOS7.7-mini版安装rancher2.x并初始化
所有主机分为系统盘与数据盘,各自承担不同职责与IO压力,数据盘的IO压力不影响节点运行:
数据盘挂载点,均使用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资源配置文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载新的CentOS-Base.repo 到/etc/yum.repos
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
运行yum makecache生成缓存
yum makecache
参考
Kubernetes节点主机名不能重复,所以我们需要修改:
查看主机名
hostname
修改主机名
因为K8S的规定,主机名只支持包含 -
和 .
(中横线和点)两种特殊符号,并且主机名不能出现重复。
hostnamectl set-hostname 主机名
查看主机名
hostname
hostnamectl
重启
reboot
再次查看
安装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-ce
curl https://releases.rancher.com/install-docker/20.10.sh | sh
修改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
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
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
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
清理脚本清理命令都执行,没脚本下载脚本后再执行
sh clear-k8s.sh
/usr/local/bin/rke2-uninstall.sh
rke2集群搭建时,人工再度确认/var/lib
、/etc
、/opt
等目录下,是否还要rancher、docker、k3s、kubernetes、containerd
等rancher与k3s、k8s等残留信息
vi /etc/NetworkManager/conf.d/rke2-canal.conf
[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:flannel*
systemctl reload NetworkManager
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
方式一(推荐):
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
在Rancher UI中创建RKE2集群:
v1.23.10+rke2r1
calico
registry.cn-hangzhou.aliyuncs.com
其他配置选择默认即可,根据需要修改,创建完毕rke2集群之后,便是注册k8s节点:
集群节点注册示例:
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 |
rke2
是containerd
容器运行时,需要做crictl
命令映射
配置环境变量:
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
配置环境变量:
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