[rancher] rancher部署和使用的一些思考

最近因为工作需要,学习调研rancher的使用
k8s作为主流微服务部署的基础,已经逐渐在工作中普及。但是k8s dashboard用于生产管理,还是有所欠缺:我们需要一个k8s之上的管理平台。经过调研,目前rancher已经迭代开发至v2.8版本,有很好的社区基础和公司技术支持,决定深入研究下

部署

初始创建一台ubuntu22.04 虚拟机,安装docker (版本20.10.x)。之前我提到过k8s 1.24之后不再兼容docker,但是rancher(v2.7)仅仅是利用docker启动rancher镜像,容器启动后在容器内部启动k3s支撑local集群。所以如果在宿主机器上使用docker ps命令,仅仅只能看到一个rancher容器在运行;进入容器运行crictl命令,可以看到k3s集群

添加新集群

https://github.com/kubernetes-sigs/cri-tools/releases
从这里可以下载最新的crictl工具,方便查看containerd等容器
编辑/etc/crictl.yaml文件可以修改默认socket路径

添加新集群的节点不需要额外安装docker,但是需要保证磁盘空间足够:这次测试安装,就是磁盘空间不够导致cluster agent pod无法启动,rancher界面内一直提示集群处于"waiting for cluster agent to connect"的reconciling状态
(查了两天原因。因为crictl只能看到已经启动的容器,pending的看不到。后来无意中看到运行rancher自带kubectl的方法: /var/lib/rancher/rke2/bin/kubectl --kubeconfig /etc/rancher/rke2/rke2.yaml,这才定位到root cause。虽然耽误了时间,但是也对rancher创建集群的逻辑有了更深一层的理解)

删除集群

我测试的rancher版本是2.7.7,从rancher UI界面删除集群和machine,后端部署的 k8s集群并不会受到影响。(据同事分享的信息,2.5.x版本,从界面删除集群,后端k8s集群也会被清空。我这里没有做测试:因为我个人喜欢用最新版本,以后大概率不会去用2.5)
如果需要清除后端部署k8s集群,需要手工登陆节点执行rancher提供的专门清理脚本:

1. 卸载agent服务脚本:

# rancher-system-agent-uninstall.sh
# which rancher-system-agent-uninstall.sh
/usr/local/bin/rancher-system-agent-uninstall.sh

直接执行就行。使用rancher的create功能创建集群时候,该脚本也会自动安装到/usr/local/bin路径下。所以直接在shell下运行即可

2. 卸载rke2集群

# which rke2-uninstall.sh
/usr/local/bin/rke2-uninstall.sh

同上,执行rke2-uninstall.sh即可删除rke2集群

3. 删除数据/配置文件

rm -rf /etc/ceph \
       /etc/cni \
       /etc/kubernetes \
       /etc/rancher \
       /opt/cni \
       /opt/rke \
       /run/secrets/kubernetes.io \
       /run/calico \
       /run/flannel \
       /var/lib/calico \
       /var/lib/etcd \
       /var/lib/cni \
       /var/lib/kubelet \
       /var/lib/rancher\
       /var/log/containers \
       /var/log/kube-audit \
       /var/log/pods \
       /var/run/calico

其实在第二步的脚本中,已经包括部分删除数据/配置的步骤,但是有些目录没删干净(例如/var/lib/rancher)

4. reboot 节点

经过以上四步,基本可以干净删除k8s(rke2)集群环境

5. CLI界面管理cluster

想直接在node上面利用cli管理新创建的集群,需要使用rke自带的kubectl和配置文件
例如:

/var/lib/rancher/rke2/bin/kubectl --kubeconfig /etc/rancher/rke2/rke2.yaml get nodes

为了不每次输入这么长的路径,我们可以按照k8s传统配置方法移动kubectl和rke2.yaml路径:

cp  /var/lib/rancher/rke2/bin/kubectl /usr/local/bin/
mkdir -p $HOME/.kube
cp /etc/rancher/rke2/rke2.yaml .kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

完成上述操作后,就可以方便的使用 kubectl get nodes 等命令了

root@k8s-master:~# kubectl get nodes
NAME         STATUS   ROLES                              AGE   VERSION
k8s-master   Ready    control-plane,etcd,master,worker   12d   v1.26.8+rke2r1
参考文档:
  1. https://ranchermanager.docs.rancher.com/how-to-guides/new-user-guides/manage-clusters/clean-cluster-nodes
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Rancher是一个开源的容器管理平台,它提供了一套完整的工具和界面,用于简化容器的部署、管理和监控。Rancher私有化部署是指将Rancher部署在己的私有境中,而不是使用Rancher供的托管服务。 要进行Rancher私有化部署,您需要按照以下步骤进行操作1. 确定部署环境:您需要选择一个适的服务器或虚拟机环境来部署Ranch。可以选择使用物理服务器、虚拟机或云台等。 2. 安装Docker:Rancher是基于Docker的,所以您需要先安装Docker。根据您的操作系统类型,可以参考Docker官方文档进行安装。 3. 部署Rancher服务器:您可以通过使用Docker命令或者Docker Compose文件来部署Rancher服务器。具体的部署方式可以参考Rancher官方文档中的指南。 4. 配置Rancher服务器:一旦Rancher服务器成功部署,您可以通过访问Rancher的Web界面来进行配置。在配置过程中,您需要设置管理员账号、访问控制、注册节点等。 5. 添加节点:在私有化部署中,您可以将其他服务器或虚拟机作为节点添加到Rancher中,以便进行容器的部署和管理。您可以通过Rancher界面或者使用Rancher提供的命令行工具来添加节点。 6. 部署和管理容器:一旦Rancher服务器和节点都配置好了,您就可以使用Rancher界面来部署和管理容器了。您可以选择使用Rancher提供的应用商店来快速部署常用的容器应用,也可以自定义部署您自己的容器应用。 希望以上介绍对您有所帮助!如果您还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值