RKE 简介

RKE 即 Rancher Kubernetes Engine,是由 Rancher 发布的一个极其简单、快速的 Kubernetes 安装程序,简化了 Kubernetes 集群的部署过程。

RKE 经过 CNCF 认证,支持多种操作系统,包括 MacOS、Linux 和 Windows,可以在裸金属服务器(BMS)和虚拟服务器(Virtualized Server)上运行。

RKE 会自动安装 CNI 插件、Ingress-Contoller 等组件。



RKE 下载、安装

# AMD架构
wget -O /usr/bin/rke https://github.com/rancher/rke/releases/download/v1.5.9/rke_linux-amd64
chmod +x /usr/bin/rke
 
# ARM架构
wget -O /usr/bin/rke https://github.com/rancher/rke/releases/download/v1.5.9/rke_linux-arm64
chmod +x /usr/bin/rke
 
# 查看版本信息
rke -v

RKE 部署 Kubernetes 集群

# 关闭防火墙
systemctl disable --now firewalld
 
# 关闭 selinxu
setenforce 0
sed -i ’s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
 
# 清空 iptables 规则
iptables -F && iptables -t nat -F
 
# 禁用 swap 分区
swapoff -a
sed -i '/swap / s/^\(.*\)$/#\1/g' /etc/fstab
 
# 配置主机间 SSH 免密(详细过程略)
 
# 安装 docker(详细过程略)
 
# 配置用户组
vi /etc/docker/daemon.json,添加 "group": "dockerroot"
systemctl daemon-reload && systemctl restart docker
 
ll /var/run/docker.sock
srw-rw---- 1 root dockerroot 0 May 17 14:05 /var/run/docker.sock
 
# 创建用户
useradd rke
 
# 加入用户组
usermod -aG dockerroot rke
 
# 切换用户、配置免密(不能在 root 用户下执行后续操作)
su - rke
cd .ssh && ssh-keygen -f id_rsa
cat id_rsa.pub >> authorized_keys
chmod 0600 authorized_keys

2、创建配置

cat > cluster.yml <<EOF
cluster_name: mycluster
kubernetes_version: v1.27.13-rancher1-1
nodes:
  - address: 172.16.100.1
    user: rke
    role:
      - controlplane
      - etcd
    ssh_key_path: /home/rke/.ssh/id_rsa
    port: 22
  - address: 172.16.100.2
    user: rke
    role:
      - worker
    ssh_key_path: /home/rke/.ssh/id_rsa
    port: 22
EOF

3、部署集群

  • 方式一(默认方式)

rke up --config cluster.yml
cp kube_config_cluster.yml .kube/config
 
🔔 最后一行返回 Finished building Kubernetes cluster successfully 表明创建成功
🔔 同时生成名为 kube_config_cluster.yml 的 kubeconfig 文件
🔔 所有集群组件均以 Docker 容器方式运行
CONTAINER ID   IMAGE                                  COMMAND                  CREATED         STATUS              PORTS     NAMES
a94cdfa21cee   aba045951c44                           "/usr/bin/dumb-init …"   2 minutes ago   Up About a minute             k8s_controller_nginx-ingress-controller-z5vss_ingress-nginx_4cbff6e0-50ca-44b8-92a1-700553676379_0
7a303c87f0a8   rancher/mirrored-pause:3.7             "/pause"                 2 minutes ago   Up About a minute             k8s_POD_nginx-ingress-controller-z5vss_ingress-nginx_4cbff6e0-50ca-44b8-92a1-700553676379_0
d86e48e62ef5   b9a5a1927366                           "/metrics-server --c…"   2 minutes ago   Up 2 minutes                  k8s_metrics-server_metrics-server-657c74b5d8-zb97m_kube-system_8e54757a-7a0b-4bac-8707-ffd0be094950_0
2c03a80e4ce2   rancher/mirrored-pause:3.7             "/pause"                 2 minutes ago   Up 2 minutes                  k8s_POD_metrics-server-657c74b5d8-zb97m_kube-system_8e54757a-7a0b-4bac-8707-ffd0be094950_0
da682bea8dff   2635ad6e71aa                           "/cluster-proportion…"   2 minutes ago   Up 2 minutes                  k8s_autoscaler_coredns-autoscaler-6ff6bf758-v4chr_kube-system_780fd508-ae81-44f2-9036-55b7de27d1d6_0
7d42c99d7fe2   ead0a4a53df8                           "/coredns -conf /etc…"   2 minutes ago   Up 2 minutes                  k8s_coredns_coredns-54cc789d79-5b487_kube-system_baed273d-6438-4f58-a39c-ad6cdcf06b74_0
16aa23b63ed8   rancher/mirrored-pause:3.7             "/pause"                 2 minutes ago   Up 2 minutes                  k8s_POD_coredns-autoscaler-6ff6bf758-v4chr_kube-system_780fd508-ae81-44f2-9036-55b7de27d1d6_0
fcc86abd24a6   rancher/mirrored-pause:3.7             "/pause"                 2 minutes ago   Up 2 minutes                  k8s_POD_coredns-54cc789d79-5b487_kube-system_baed273d-6438-4f58-a39c-ad6cdcf06b74_0
a1425a946e19   4e87edec0297                           "/usr/bin/kube-contr…"   2 minutes ago   Up 2 minutes                  k8s_calico-kube-controllers_calico-kube-controllers-5b564d9b7-hcx8t_kube-system_28099c95-0e44-477c-a4ee-7040193c9d4d_0
2bed07ea7b10   rancher/mirrored-pause:3.7             "/pause"                 2 minutes ago   Up 2 minutes                  k8s_POD_calico-kube-controllers-5b564d9b7-hcx8t_kube-system_28099c95-0e44-477c-a4ee-7040193c9d4d_1
52d056f1d42a   f9c73fde068f                           "/opt/bin/flanneld -…"   2 minutes ago   Up 2 minutes                  k8s_kube-flannel_canal-d7twg_kube-system_3c098334-d690-4411-a51c-eb659446d1e1_0
2b75514aa002   1843802b91be                           "start_runit"            2 minutes ago   Up 2 minutes                  k8s_calico-node_canal-d7twg_kube-system_3c098334-d690-4411-a51c-eb659446d1e1_0
a4a584125e81   rancher/mirrored-pause:3.7             "/pause"                 2 minutes ago   Up 2 minutes                  k8s_POD_canal-d7twg_kube-system_3c098334-d690-4411-a51c-eb659446d1e1_0
efae15a3e11f   rancher/hyperkube:v1.28.9-rancher1     "/opt/rke-tools/entr…"   2 minutes ago   Up 2 minutes                  kube-proxy
4c00b668f68b   rancher/hyperkube:v1.28.9-rancher1     "/opt/rke-tools/entr…"   2 minutes ago   Up 2 minutes                  kubelet
8bda1f517147   rancher/hyperkube:v1.28.9-rancher1     "/opt/rke-tools/entr…"   2 minutes ago   Up 2 minutes                  kube-scheduler
50a74e8f5946   rancher/hyperkube:v1.28.9-rancher1     "/opt/rke-tools/entr…"   3 minutes ago   Up 3 minutes                  kube-controller-manager
0ba10b2e326e   rancher/hyperkube:v1.28.9-rancher1     "/opt/rke-tools/entr…"   3 minutes ago   Up 3 minutes                  kube-apiserver
6df5ad3c1321   rancher/rke-tools:v0.1.96              "/docker-entrypoint.…"   3 minutes ago   Up 3 minutes                  etcd-rolling-snapshots
17d72af609fc   rancher/mirrored-coreos-etcd:v3.5.10   "/usr/local/bin/etcd…"   3 minutes ago   Up 3 minutes
  • 方式二(dind方式)

rke up --config cluster.yml --dind
cp kube_config_cluster.yml .kube/config
 
🔔 最后一行返回 Finished building Kubernetes cluster successfully 表明创建成功
🔔 同时生成名为 kube_config_cluster.yml 的 kubeconfig 文件
🔔 所有集群组件均以 Docker in Docker 方式运行
CONTAINER ID   IMAGE                                              COMMAND                  CREATED          STATUS          PORTS           NAMES
6fbd35ab313a   docker:20.10.23-dind                               "sh -c 'mount --make…"   5 minutes ago    Up 5 minutes    2375-2376/tcp   rke-dind-172.16.100.1

4、实测结果

Kubernetes 集群组件均以容器方式运行。

RKE 常用命令

rke -h
NAME:
   rke - Rancher Kubernetes Engine, an extremely simple, lightning fast Kubernetes installer that works everywhere
 
USAGE:
   rke [global options] command [command options] [arguments...]
 
VERSION:
   v1.5.9
 
AUTHOR:
   Rancher Labs, Inc.
 
COMMANDS:
   up       Bring the cluster up
   remove   Teardown the cluster and clean cluster nodes
   version  Show cluster Kubernetes version
   config   Setup cluster configuration
   etcd     etcd snapshot save/restore operations in k8s cluster
   cert     Certificates management for RKE cluster
   encrypt  Manage cluster encryption provider keys
   util     Various utilities to retrieve cluster related files and troubleshoot
   help, h  Shows a list of commands or help for one command
 
GLOBAL OPTIONS:
   --debug, -d    Debug logging
   --quiet, -q    Quiet mode, disables logging and only critical output will be printed
   --trace        Trace logging
   --help, -h     show help
   --version, -v  print the version
# 查看集群版本
rke version
 
# 生成配置(交互方式)
rke config --name cluster.yml
 
# 生成配置(空模版)
rke config --name cluster.yml --empty
 
# 清理集群,可选参数:--config 指定配置,--force 强制清理
rke remove