Rancher RKE2 部署 K8s 竟然这么简单
RKE2 是 Rancher 的下一代 Kubernetes 发行版,它是一个完全合规的 Kubernetes 发行版,专注于安全和合规性。
Rancher 官方提供了一个 RKE2 的安装脚本 https://get.rke2.io,这个脚本可以直接安装。但是在国内网络有如下两个头疼的问题
- 默认的可执行文件是从 Github 下载:下载可能很慢,需要多次重试才能偶然成功。
- 默认的镜像是从 Docker Hub 下载:直接无法下载。
在国内安装主要就是基于脚本提供的离线安装方式, 有两种方式:
当前(2026年9月)最新的稳定版本是 v1.36.3+rke2r1。该版本的相关文件和镜像已经全部同步到藏云阁,支持 ARM64 和 AMD64 的架构。
安装过程很简单,主要就是以下几步
- 下载可执行文件
- 创建集群配置并指定镜像仓库
- 获取脚本并执行安装
- 基本操作使用
下载可执行文件
v1.36.3+rke2r1 版本安装可执行文件 amd64 版本文件
和 arm64 版本的文件下载
可以将文件下载到本地的一个目录,如 /data 。这个目录在后面的安装时会用到
# amd64
wget https://file.cncfstack.com/github.com/rancher/rke2/releases/download/v1.36.3%2Brke2r1/rke2.linux-amd64.tar.gz -O /data/rke2.linux-amd64.tar.gz
# arm64
wget https://file.cncfstack.com/github.com/rancher/rke2/releases/download/v1.36.3%2Brke2r1/rke2.linux-arm64.tar.gz -O /data/rke2.linux-arm64.tar.gz
创建集群配置并指定镜像仓库
RKE2 在管理 Kubernetes 集群时可以通过 /etc/rancher/rke2/config.yaml 指定私有镜像仓库。这里的私有镜像仓库可以是企业内部的私有镜像仓库,或者使用 藏云阁镜像仓库服务,但都需要提前将镜像上传。
如果没有特殊需求,可以在 /etc/rancher/rke2/config.yaml 中只指定如下一行即可:
system-default-registry: "registry.cncfstack.com/docker.io"
对于我这边环境,除了配置镜像仓库,还有一些特殊配置,参考
system-default-registry: "registry.cncfstack.com/docker.io"
cni: calico
token: "your-cluster-token"
tls-san:
- "192.168.1.121"
配置说明:
system-default-registry: 指定默认镜像仓库前缀。由于藏云阁的在同步镜像时根据平台划分了目录多了一层,如docker.io、gcr.io、ghcr.io和quay.io等,所以需要在后面添加一个路径/docker.io。cni: 指定使用 Calico 网络插件。默认是rke2-canal的网络方案。token: 集群节点连接的凭证。后续构建多master集群,添加node节点都需要带上相同的token。tls-san: K8s Apiserver 的 VIP 或域名。这个配置会配置在 apiserver 的证书地址列表中,可以是vip或者域名等高可用的入口地址。
获取按照脚本并执行安装
安装脚本可以直接 curl 下载到本地
curl -sSL https://get.rke2.io > rke2-install.sh
然后就可以执行
INSTALL_RKE2_VERSION=v1.36.3+rke2r1 \
INSTALL_RKE2_METHOD=tar \
INSTALL_RKE2_ARTIFACT_PATH=/data/v1.36.3%2Brke2r1 \
INSTALL_RKE2_TYPE=server sh rke2-install.sh
这个命令在执行前添加了几个环境变量:
INSTALL_RKE2_VERSION=v1.36.3+rke2r1用来指定安装的版本。INSTALL_RKE2_ARTIFACT_PATH=/data/v1.36.3%2Brke2r1设置离线包路径,二进制文件从这里读取。INSTALL_RKE2_METHOD=tar指定安装方式,支持rpm和tar。这里的指定方式和INSTALL_RKE2_ARTIFACT_PATH目录中下载的文件类型有关,前面下载的是tar.gz就是该类型。INSTALL_RKE2_TYPE=server指定节点类型,可以指定为server或agent,默认是server。
命令执行完成后也就安装完成了,本地有安装包缓存安装的过程很快。
集群的启动时才会拉取容器镜像,默认 rke2-server 服务没有启动,需要设置开机启动并启动服务。
systemctl enable --now rke2-server
通过 journalctl 来查看服务日志
journalctl -u rke2-server
基本操作使用
rke2 的安装文件和数据主要在 /var/lib/rancher/rke2 和 /etc/rancher 目录中,其中已经提供 kubectl 和 helm 相关可执行文件和 kubeconfig 配置。
kubectl和kubeconfig的默认路径
安装时默认 kubectl 已经安装到节点中 /var/lib/rancher/rke2/bin/kubectl
kubeconfig 文件可以使用 admin 的 kubecofnig /var/lib/rancher/rke2/server/cred/admin.kubeconfig
默认安装完成后集群运行的所有 POD 如下:
[root@openeuler100 ~]# /var/lib/rancher/rke2/bin/kubectl --kubeconfig=/var/lib/rancher/rke2/server/cred/admin.kubeconfig get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
calico-system calico-kube-controllers-6954dcfb78-jbh58 1/1 Running 0 6h19m
calico-system calico-node-plfwr 1/1 Running 0 6h19m
calico-system calico-typha-7d9774f754-mpsrr 1/1 Running 0 6h19m
kube-system cloud-controller-manager-openeuler100 1/1 Running 0 6h20m
kube-system etcd-openeuler100 1/1 Running 0 6h20m
kube-system helm-install-rke2-calico-crd-6bzrj 0/1 Completed 0 6h20m
kube-system helm-install-rke2-calico-wd9rq 0/1 Completed 2 (6h20m ago) 6h20m
kube-system helm-install-rke2-coredns-8c2mf 0/1 Completed 0 6h20m
kube-system helm-install-rke2-metrics-server-nf4dz 0/1 Completed 0 6h20m
kube-system helm-install-rke2-runtimeclasses-xv659 0/1 Completed 0 6h20m
kube-system helm-install-rke2-snapshot-controller-crd-9psbl 0/1 Completed 0 6h20m
kube-system helm-install-rke2-snapshot-controller-wc5gt 0/1 Completed 0 6h20m
kube-system helm-install-rke2-traefik-crd-trfmf 0/1 Completed 0 6h20m
kube-system helm-install-rke2-traefik-lj296 0/1 Completed 2 (6h19m ago) 6h20m
kube-system kube-apiserver-openeuler100 1/1 Running 0 6h20m
kube-system kube-controller-manager-openeuler100 1/1 Running 0 6h20m
kube-system kube-proxy-openeuler100 1/1 Running 0 6h20m
kube-system kube-scheduler-openeuler100 1/1 Running 0 6h20m
kube-system rke2-coredns-rke2-coredns-659b8fb74b-x45c8 1/1 Running 0 6h20m
kube-system rke2-coredns-rke2-coredns-autoscaler-5dd7f76f89-vxdmd 1/1 Running 0 6h20m
kube-system rke2-metrics-server-659966647b-x8ng7 0/1 Running 0 6h18m
kube-system rke2-snapshot-controller-685cff5c47-rr55w 1/1 Running 0 6h19m
kube-system rke2-traefik-gkkf6 1/1 Running 0 6h18m
tigera-operator tigera-operator-555d5f99bb-mgq9n 1/1 Running 0 6h19m
helm命令和配置文件
rke2 的大部分服务都是通过 helm 进行安装部署的,但是没有单独提供 helm 命令为用户使用。
可以从 helm 官网或 Github 来下载 helm 可执行文件,也可以通过如下命令找到 rke2 安装在容器中的 helm 可执行文件,复制出来即可。
find /var/lib/rancher -type f -executable -name helm -exec cp {} /usr/local/bin/ \;
helm 访问集群使用的 kubeconfig 和 kubectl 的是一样的,例如查询集群中所有已经安装的 HelmChart。
[root@openeuler100 ~]# /usr/local/bin/helm --kubeconfig=/var/lib/rancher/rke2/server/cred/admin.kubeconfig ls -A
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
rke2-calico kube-system 1 2026-08-28 07:40:49.748392371 +0000 UTC deployed rke2-calico-v3.32.100 v3.32.1
rke2-calico-crd kube-system 1 2026-08-28 07:40:35.613392773 +0000 UTC deployed rke2-calico-crd-v3.32.100 v3.32.1
rke2-coredns kube-system 1 2026-08-28 07:40:35.514026706 +0000 UTC deployed rke2-coredns-1.46.201 1.13.1
rke2-metrics-server kube-system 1 2026-08-28 07:41:48.70459788 +0000 UTC deployed rke2-metrics-server-3.13.105 0.8.1
rke2-runtimeclasses kube-system 1 2026-08-28 07:41:50.617655654 +0000 UTC deployed rke2-runtimeclasses-0.1.000 0.1.0
rke2-snapshot-controller kube-system 1 2026-08-28 07:41:46.04662543 +0000 UTC deployed rke2-snapshot-controller-4.2.008 v8.5.0
rke2-snapshot-controller-crd kube-system 1 2026-08-28 07:41:35.592402686 +0000 UTC deployed rke2-snapshot-controller-crd-4.2.008 v8.6.0
rke2-traefik kube-system 1 2026-08-28 07:41:50.189510609 +0000 UTC deployed rke2-traefik-40.1.009 v3.7.1
rke2-traefik-crd kube-system 1 2026-08-28 07:41:35.59440579 +0000 UTC deployed rke2-traefik-crd-40.1.009 v3.7.1
如果觉得每次执行命令太长,可以在 ~/.bashrc 中添加 alias 别名。
alias kubectl="/var/lib/rancher/rke2/bin/kubectl --kubeconfig=/var/lib/rancher/rke2/server/cred/admin.kubeconfig"
alias helm="/usr/local/bin/helm --kubeconfig=/var/lib/rancher/rke2/server/cred/admin.kubeconfig"