Kubernetes之k3s: 使用docker作为容器来运行ros2节点 (Agent篇)

本文详细描述了作者在AMD64和arm64架构的Ubuntu22.04系统,以及NVIDIAOrinJetpack6DP环境下搭建k3s服务器和代理的历程,重点讲述了跨平台通信配置、Cgroup版本问题和Flannel网络设置。

简单的搭建k3s的Server已经在上一篇文章中介绍了。

k3s是支持各种系统或者核心。本人也在三中不同架构的ubuntu22.04系统中进行了测试,分别是amd64(戴尔笔记本和虚拟机),arm64(M1 Mac的虚拟机)和arm64(NVIDIA Orin Jetpack 6 DP版本)。其中后面两个arm64版本的kernel是不同的,所以在某些设置中也有有很多坑。

在amd64和arm64的笔记本或者虚拟机中,k3s的Server和Agent,根据官网的介绍和配置都是很容易搭建的。拥有不同身份的不同设备之间的通信是否顺利是k3s集群环境搭建的唯一难点。通常情况下,并不需要在deployment的yaml文件中添加额外的设置,或者是添加其他的网络配置文件,不同集群之间就可以正常通信。但是本人在项目中还使用树莓派4B和Nvidia Orin 64GB对k3s进行了测试,可想而知,他们是需要额外的配置。其中,根据官网的介绍,在树莓派中需要额外地安装内核模块(网上有教程)。Nvidia Orin 64GB中的Ubuntu 22.04默认使用的Cgroup是V2版本,查看了其他的Ubuntu22.04系统,都是Cgroup2版本。个人猜测,Ubuntu 22.04应该是默认使用了Cgroup2的控制群组版本。然而Nvidia Orin的Cgroup2版本无法支持容器找到相对应的服务API,根据网上的教程可以使用Cgroup1版本的控制群组。因为Nvidia Orin没有和普通Ubuntu系统的Grub引导文件,所以在修改引导文件中绕了很多弯路。而且经过本人的测试,Nvidia Orin只有在host-gw的flannel-backend模式下,k3s服务才能正常地安装,启动以及添加后续的集群。而且server和master的flannel-backend的模式需要保持一致,而且k3s默认的flannel-backend的模式是vxlan,所以在Nvidia Orin搭建k3s集群就需要特别注意网络配置。

接下去就简单介绍一下k3s server和agent的安装,搭建环境:

master Ubuntu 22.04 VM amd64 192.168.0.105 ros2-talker
agent Ubuntu 22.04 VM arm64 192.168.0.244 ros2-listener

docker需要根据k3s官网给出的脚本安装对应的20.10版本,在上一篇文章提到过,版本不对可能会导致镜像无法找到。

首先需要在两个设备分别添加host信息:

sudo -i
vim /etc/hosts

将下面两行添加进入hosts文件:

192.168.0.105    master
192.168.0.244    agent

如何修改hostname已经在上一篇文章中介绍过。接下来分别在两台设备中安装k3s。

k3s server端

url -sfL https://get.k3s.io | INSTALL_K3S_EXEC="server --token 12345 --docker" sh -s -

k3s agent端

curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="agent --server https://192.168.0.105:6443 --token 12345 --docker" sh -s -

port 6443需要给定,否则agent无法正常连接到server。

结果显示如下:

root@master:~# kubectl get nodes
NAME     STATUS   ROLES                  AGE   VERSION
master   Ready    control-plane,master   13h   v1.28.5+k3s1
agent    Ready    <none&g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值