
最近,由于项目需求,研究了Rancher这款优秀的Kubernetes集群管理工具。毫无疑问,它的使用体验非常出色,既简单易上手,同时也在生产环境中表现强劲。我收集了一些相关资料,分享下帮助大家快速上手!本文会先聊聊在本地测试环境中,如何使用rancher快速搭建K8S集群环境。
首先是,Rancher官方的介绍
ranchermanager.docs.rancher.com/zh/
Rancher 是一个 Kubernetes 管理工具,让你能在任何地方和任何提供商上部署和运行集群。
Rancher 可以创建来自 Kubernetes 托管服务提供商的集群,创建节点并安装 Kubernetes,或者导入在任何地方运行的现有 Kubernetes 集群。
Rancher搭建
想本地测试部署真的很简单,使用docker 一键部署, 即可拥有你的Rancher实例(参考官方文档ranchermanager.docs.rancher.com/zh/pages-fo...
css
docker run -d --restart=unless-stopped \ -p 80:80 -p 443:443 \ --privileged \ rancher/rancher:latest
打开浏览器页面访问URL https://localhost:443, 获取初始密码就可以登录Rancher UI

有了Rancher之后,下一步我们做什么呢?
K8S部署
作为K8S管理工具,Rancher既提供了让我们创建新集群的方式,也支持我们导入已创建的K8S集群。我们就先来介绍下怎么用Rancher快速部署K8S集群吧!
环境配置
由于是在本地测试,我计划使用3台VM来搭建本地K8S集群(一台master节点,两台worker节点),可以借助Vagrant快速启动我的实验环境!
-
master 10.37.129.10 安装docker, kubectl
-
worker-1 10.37.129.11 安装docker
-
worker-2 10.37.129.12 安装docker
Vagrant 具体配置如下:
arduino
Vagrant.configure("2") do |config|
config.vm.box = "bento/ubuntu-22.04-arm64"
config.vm.define "master" do | w |
w.vm.hostname = "master"
w.vm.network "private_network", ip: "10.37.129.10"
w.vm.provision "setup-hosts", :type => "shell", :path => "k8s-setup-master.sh" do |s|
end
w.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get install -y git wget vim curl
SHELL
end
config.vm.box = "bento/ubuntu-22.04-arm64"
config.vm.define "worker-1" do | w |
w.vm.hostname = "worker-1"
w.vm.network "private_network", ip: "10.37.129.11"
w.vm.provision "setup-hosts", :type => "shell", :path => "k8s-setup-master.sh" do |s|
end
w.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get install -y git wget vim
SHELL
end
config.vm.box = "bento/ubuntu-22.04-arm64"
config.vm.define "worker-2" do | w |
w.vm.hostname = "worker-2"
w.vm.network "private_network", ip: "10.37.129.12"
w.vm.provision "setup-hosts", :type => "shell", :path => "k8s-setup-master.sh" do |s|
end
w.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get install -y git wget vim curl
SHELL
end
end
接着运行 vagrant up
, 3台网络互通的VM就启动成功啦!


准备好虚机后, 下一步就可以开始开搞K8S集群啦!
Rancher配置
从Rancher的管理界面点击Create
选择自定义然后进入集群的配置, 这次我们会选择部署RKE1集群(RKE1可理解是Rancher发行的K8S版本,具体RKE1 vs RKE2 vs K3S的 区别, 会在之后的文章介绍)

填上Cluster Name, 其他配置基本上按照默认即可(例如网络插件等等,默认选择Canal)

点击下一步:

这里可以看到Rancher为我们提供了RKE部署的相关命令,我们照着分别运行在我们的节点上就好啦!
创建RKE集群
首先,对于K8S集群来说,master节点运行着kubeapi
、scheduler
等关键组件,需要被先创建出来,过程如下:
在上图配置页面,我们勾选上etcd
、controlplane
以及worker
三个选项,复制如下docker命令
javascript
sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.8.0 --server https://10.37.129.3 --token f2tlbmmngglbx5rtlkzr7bb56gbkttztkg59rst4v2h9j6lwcx7rhr --ca-checksum 3545033d9cc350245a0a976d815ce9b10c51ff55167555f32b39c14776679386 --etcd --controlplane --worker
在我们本地VM master节点上运行
运行成功后,会发现K8S controlplane
相关组件会以docker容器的方式部署在节点上
接着我们只勾选worker
选项
在worker-1、worker-2 节点上运行如下命令
javascript
sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.8.0 --server https://10.37.129.3 --token f2tlbmmngglbx5rtlkzr7bb56gbkttztkg59rst4v2h9j6lwcx7rhr --ca-checksum 3545033d9cc350245a0a976d815ce9b10c51ff55167555f32b39c14776679386 --worker
这样我们就通过Rancher成功创建一个k8s集群,是不是很简单!!
打开Rancher UI,我们来查看下集群创建的状态
可以在Workload中查看Pod相关状态
Rancher使用
通过Rancher部署的集群,你会发现我们可以很轻松地管理K8S相关资源,创建部署、监控等等,甚至Rancher内置了很多插件,比如istio
、prometheus
等等让你一键部署到你的集群中**
下一篇,我会继续介绍下如何使用Rancher在AWS云上部署K8S集群,实现生产级别的使用体验!
原文关注 "云原生SRE"