RKE2 部署K8S 1.28.x 高可用集群
RKE2 的介绍
RKE2 完美结合了 1.x 版本的 RKE(以下简称 RKE1)和 K3s。
它继承了 K3s 的可用性、易操作性和部署模型。
它还继承了 RKE1 与上游 Kubernetes 的紧密结合关系。为了优化边缘部署,K3s 在某些地方与上游 Kubernetes 有所不同,但 RKE1 和 RKE2 可以与上游保持紧密一致。
重要的是,RKE2 不像 RKE1 一样依赖 Docker。RKE1 使用 Docker 来部署和管理 control plane 组件以及 Kubernetes 的容器运行时。RKE2 将 control plane 组件作为由 kubelet 管理的静态 pod 启动。嵌入式容器运行时是 containerd。
介绍参考,这边省略吧:https://docs.rke2.io/zh/
主机准备
所有主机均需要操作。
参考:https://docs.rke2.io/zh/install/quickstart
硬件要求根据你部署的规模而变化。此处概述了最低建议。
- RAM:最低 4 GB(建议至少 8 GB)
- CPU:最少 2(建议至少 4 CPU)
-
必须以 root 用户或通过
sudo
执行 RKE2 安装。 - 机器之间可以相互
ping
通
安装依赖包
设置主机名
集群ip映射
关闭防火墙
关闭selinux
禁用linux的透明大页、标准大页
禁用swap分区
文件数设置
linux内核参数调优
配置内核路由转发及网桥过滤
加载网桥过滤模块
时间同步
关闭及禁用邮件服务
systemctl stop postfix && systemctl disable postfix
设置 rsyslogd 和 systemd journald
安装rke2时,查看NetworkManager,保证它不会干扰rke2
以下仅需要主节点执行
RKE2 安装与配置
rke2版本目录:https://github.com/rancher/rke2/releases
第一台管理节点配置
节点IP
是192.168.100.11
配置 RKE2 配置文件
- token:用于其他 Server 或 Agent 节点在连接集群时注册的 Secret 令牌;
- tls-san:这个选项在 Server 的 TLS 证书中增加一个额外的主机名或 IP 作为 Subject Alternative Name。如果你想通过 IP 和主机名访问,你可以将它指定为一个列表。
- node-taint: 给主节点打上污点标记,使主节点不执行pod的任务,如果只想从节点执行工作任务,主节点不执行,取消这个注释
- node-label:打上master标记
- system-default-registry: 设置阿里云镜像地址,加速下载
获取rke2
安装程序
查看第一次启动后生成的文件
设置环境变量
查看集群
启动其他 Server 节点
配置过程和第一个server
管理节点一样,不同的地方在于配置/etc/rancher/rke2/config.yaml
文件的时候需要修改一些参数
写入内容如下
server
参数表示第一个管理节点的IP
,注意,这个地方使用https
token
参数保持和第一个管理节点192.168.100.11
的/etc/rancher/rke2/config.yaml
的token
的参数位置一致node-name
配置节点名称,server
节点需要配置为不一样的名称
配置 RKE2 配置文件
获取rke2
安装程序
在保证 Server 节点总数为奇数的情况下,可以添加多个 Server 节点,添加节点步骤和配置均与添加第二个 Server 节点的方式相同。
Agent
节点配置
配置 RKE2 Agent 配置文件
获取rke2
安装程序
查看节点运行状态
初始化集群的一些操作
nerdctl 与 buildkit 的 安装
参考:https://www.cnblogs.com/lifuqiang/articles/17850939.html
nerdctl 安装
将nerdctl更名为 docker
安装buildkit
rke2 的证书更新问题
rke2集群升级问题
配置镜像仓库
配置国内镜像源加快镜像拉取
配置私有镜像仓库
编辑文件/etc/rancher/rke2/registries.yaml
写入如下信息
mirrors
字段说明
- 表示当拉取镜像的时候,会把
docker.io
重定向到国内的镜像网站https://docker.mirrors.ustc.edu.cn
configs
字段说明
- 该段内容表示配置私有镜像仓库,比如自己搭建的
harbor
仓库,如果没有私人仓库,则configs
段配置可以省略 reg-hub.gzeport.com
填写镜像仓库的地址auth
块下面的username
和password
填写仓库的登录账号密码- 如果镜像仓库访问使用
https
(使用了tls
),则需要填写tls
块的信息 - 如果不验证
CA
证书,则tls
下面填写insecure_skip_verify: true
即可,如果要验证证书,则需要填写cert_file
,key_file
,ca_file
三个参数
卸载
如果需要重新加入另外一个集群或者更改第一个管理节点,最简单的还是先卸载再重装rke2
,server
和agent
节点的卸载是一样的
参考
1.https://blog.51cto.com/ghostwritten/8080370
2.https://blog.csdn.net/weixin_47019045/article/details/126247486
3.https://mp.weixin.qq.com/s/mKvxyvlMpnul5ai7RPa9NA
4.https://segmentfault.com/a/1190000042634480?sort=votes#item-3
5.https://docs.rke2.io/zh/