github: rancher, rancher-docs, rke2, rke2-doc
Rancher 是一个 Kubernetes 管理工具,让你能在任何地方和任何提供商上部署和运行集群。
Rancher 可以创建来自 Kubernetes 托管服务提供商的集群,创建节点并安装 Kubernetes,或者导入在任何地方运行的现有 Kubernetes 集群。
Rancher 基于 Kubernetes 添加了新的功能,包括统一所有集群的身份验证和 RBAC,让系统管理员从一个位置控制全部集群的访问。
此外,Rancher 可以为集群和资源提供更精细的监控和告警,将日志发送到外部提供商,并通过应用商店(Application Catalog)直接集成 Helm。如果你拥有外部 CI/CD 系统,你可以将其与 Rancher 对接。没有的话,你也可以使用 Rancher 提供的 Fleet 自动部署和升级工作负载。
Rancher 是一个 全栈式 的 Kubernetes 容器管理平台,为你提供在任何地方都能成功运行 Kubernetes 的工具。
RKE2,也称为 RKE Government,是 Rancher 的下一代 Kubernetes 发行版。
它是一个完全合规的 Kubernetes 发行版,专注于安全和合规性。
为了实现这些目标,RKE2 会:
与 RKE 或 K3s 的差别?
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。
为什么有两个名字?
它被称为 RKE Government,目的是传达其当前针对的主要用例和部门。
它也被称为 RKE2,因为它是 Rancher Kubernetes Engine 针对数据中心用例的下一次迭代。该发行版独立运行,我们正在进行它与 Rancher 的集成工作。RKE2 与 RKE 的功能对等后,我们会让 RKE2 成为 Rancher 中的一个选项。我们也在开发从 RKE 迁移到 RKE2 的升级路径。
RKE2 提供了一个安装脚本,可以方便地将其作为服务安装在基于 systemd 的系统上。该脚本可在 https://get.rke2.io 获得。要使用此方法安装 RKE2,请执行以下操作:
curl -sfL https://get.rke2.io | sh -
中国用户,可以使用以下方法加速安装:
curl -sfL https://rancher-mirror.rancher.cn/rke2/install.sh | INSTALL_RKE2_MIRROR=cn sh -
这会将 rke2-server 服务和 rke2 二进制文件安装到你的主机上。除非以 root 用户或通过 sudo 运行,否则它将失败。
systemctl enable rke2-server.service
systemctl start rke2-server.service
journalctl -u rke2-server -f
运行此安装后:
rke2-server 服务将会安装。rke2-server 服务将被配置为在节点重启后或进程崩溃或被杀死时自动重启。
其他实用程序将安装到 /var/lib/rancher/rke2/bin/,包括 kubectl、crictl 和 ctr。请注意,默认情况下它们不在你的路径上。
两个清理脚本rke2-killall.sh 和rke2-uninstall.sh 将安装到以下路径:
/usr/local/bin/opt/rke2/binINSTALL_RKE2_TAR_PREFIX,则是 INSTALL_RKE2_TAR_PREFIX/binkubeconfig 文件将写入 /etc/rancher/rke2/rke2.yaml。
可用于注册其他 Server 或 Agent 节点的令牌将在 /var/lib/rancher/rke2/server/nodocekt
de-token 中创建。
如果要添加其他 Server 节点,则总数必须为奇数。仲裁要求节点数为奇数。有关详细信息,请参阅高可用文档。
本节中的步骤需要 root 级别访问权限或 sudo 才能执行。
curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="agent" sh -
中国用户,可以使用以下方法加速安装:
curl -sfL https://rancher-mirror.rancher.cn/rke2/install.sh | INSTALL_RKE2_MIRROR=cn INSTALL_RKE2_TYPE="agent" sh -
这会将 rke2-agent 服务和 rke2 二进制文件安装到你的主机上。除非以 root 用户或通过 sudo 运行,否则它将失败。
systemctl enable rke2-agent.service
mkdir -p /etc/rancher/rke2/
vim /etc/rancher/rke2/config.yaml
config.yaml 的内容:
server: https://<server>:9345
token: <token from server node>
rke2 server 进程在端口 9345 上侦听新节点注册。Kubernetes API 仍然照常在端口 6443 上提供服务。
systemctl start rke2-agent.service
如有需要,可以查看日志
journalctl -u rke2-agent -f
注意:每台主机必须具有唯一的主机名。如果你的主机没有唯一的主机名,请在 config.yaml 文件中设置 node-name 参数,并为每个节点提供一个有效且唯一的主机名。
有关 config.yaml 文件的更多信息,请参阅安装选项文档。
rke2本身并不能直接查看pod、image等
NAME:
rke2 - Rancher Kubernetes Engine 2
USAGE:
rke2 [global options] command [command options] [arguments...]
VERSION:
v1.27.6+rke2r1 (5cc9c774d6bf349b9ca3bcfab2a6010554fcffa7)
COMMANDS:
server Run management server
agent Run node agent
etcd-snapshot
certificate Manage RKE2 certificates
secrets-encrypt Control secrets encryption and keys rotation
token Manage bootstrap tokens
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--help, -h show help
--version, -v print the version
默认情况下,RKE2 中的证书在 12 个月后过期。
如果证书已经过期或剩余的时间不足 90 天,则在 RKE2 重启时轮换证书。
从 v1.21.8+rke2r1 开始,你可以手动轮换证书。为此,建议先停止 rke2-server 进程,然后轮换证书,最后再次启动该进程:
systemctl stop rke2-server
rke2 certificate rotate
systemctl start rke2-server
systemctl status rke2-server
# 无需操作
#cp -a /var/lib/rancher/rke2/server/tls-1741755966/client-admin.crt /var/lib/rancher/rke2/server/tls/
#cp -a /var/lib/rancher/rke2/server/tls-1741755966/client-admin.key /var/lib/rancher/rke2/server/tls/
# 更新 .kube/config
sudo cat /etc/rancher/rke2/rke2.yaml > ~/.kube/config
# 检查容器状态
docker ps -a |grep -E 'kube-apiserver|kube-controller-manager|kube-scheduler|etcd'
在 /var/lib/rancher/rke2/server/manifests 中找到的任何文件都会以类似于 kubectl apply 的方式自动部署到 Kubernetes。
有关使用清单目录部署 Helm Chart 的信息,请参阅 Helm 章节。