【K8s】专题八:Kubernetes 安装方法之 RKE

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!


一、RKE 简介

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

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

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

RKE 项目地址:GitHub - rancher/rke

RKE 官网文档:产品简介 | Rancher文档


二、RKE 下载、安装
bash 复制代码
# 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 集群

1、准备工作

bash 复制代码
# 关闭防火墙
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、创建配置

bash 复制代码
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、部署集群

  • 方式一(默认方式)
bash 复制代码
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方式)
bash 复制代码
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 常用命令
bash 复制代码
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
bash 复制代码
# 查看集群版本
rke version

# 生成配置(交互方式)
rke config --name cluster.yml

# 生成配置(空模版)
rke config --name cluster.yml --empty

# 清理集群,可选参数:--config 指定配置,--force 强制清理
rke remove

五、写在最后

本文之后,关于 kubernetes 安装方法的专题介绍将告一段落,各位读者可以按照自己的喜好以及需求场景,选择部署 kubernetes 集群的方法。

此外,笔者还使用和验证过 kubeadm、kubeasz、kubekey 等工具,以及二进制方式手动安装 kubernetes 的方法,感兴趣的读者可以私信留言,了解相关信息。

相关推荐
阿里云云原生2 天前
阿里云获评 Agentic AI 开发平台领导者,函数计算 AgentRun 赢下关键分!
云原生
蝎子莱莱爱打怪2 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
阿里云云原生2 天前
MSE Nacos Prompt 管理:让 AI Agent 的核心配置真正可治理
微服务·云原生
阿里云云原生2 天前
当 AI Agent 接管手机:移动端如何进行观测
云原生·agent
阿里云云原生2 天前
AI 原生应用开源开发者沙龙·深圳站精彩回顾 & PPT下载
云原生
阿里云云原生2 天前
灵感启发:日产文章 100 篇,打造“实时热点洞察”引擎
云原生
~莫子3 天前
Haproxy七层负载详解+实验详细代码
云原生
阿里云云原生3 天前
OpenTelemetry + 云监控 2.0:打造你的云原生全栈可观测
云原生
阿里云云原生3 天前
Kubernetes 官方再出公告,强调立即迁移 Ingress NGINX
kubernetes
阿狸猿3 天前
云原生数据库
云原生·软考