阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用K3s在Raspberry Pi上运行Kubernetes集群

593次阅读
没有评论

共计 3022 个字符,预计需要花费 8 分钟才能阅读完成。

很长一段时间以来,我一直对用廉价的 Raspberry Pi 堆栈构建 Kubernetes 集群感兴趣。跟随网络上的各种教程,我能够在三个树莓派集群中安装 Kubernetes 并进行工作。但是,主节点上的 RAM 和 CPU 要求使我的 Pi 不堪重负。当执行各种 Kubernetes 任务时,这会导致性能不佳。这也使得就地升级 Kubernetes 成为不可能。

结果,我很高兴看到 k3s 项目。K3s 被标榜为用于资源受限环境的轻量级 Kubernetes。它还针对 ARM 处理器进行了优化。这使得运行基于 Raspberry Pi 的 Kubernetes 集群更加可行。实际上,我们将在本文中创建一个。

在开始之前,我们先介绍 K3s 这个项目。K3s 被誉为是最轻量级的 Kubernetes 发行版,它针对低配的 x86 和 ARM 处理器优化,可以让 Kubernetes 在树莓派上运行得更好。

本文我们将介绍如何使用 K3s 在树莓派上创建 Kubernetes 集群。系统我们用的是树莓派最流行的 Raspbian。

准备工作

在开始创建 Kubernetes 集群之前,我们需要准备,

  • 至少一个树莓派,包括 SD 卡和电源
  • 网线,普通网线即可
  • 交换机或路由器,以便将所有树莓派连接到一个内网中

安装的大部分工作都依赖网络,因此还需要能访问公网网络。

集群概览

在这个集群里,我们会使用三个树莓派。其中一个树莓派作为主节点,我们将它命名为 kmaster,并为其分配一个静态 IP 192.168.0.50(注:假设使用的私有网段是 192.168.0.0/24),而另外两个树莓派作为工作节点,分别命名为 knode1 和 knode2,也分别分配 192.168.0.51 和 192.168.0.52 两个 IP 地址。

当然,如果你的内网网段和我的不一样,注意 IP 与集群个节点角色的对应关系。

为了能通过主机名直接访问节点,我们会更新每个节点的 /etc/hosts 文件,记录 IP 到主机名的对应关系:

  1. echo e “192.168.0.50 kmaster”| sudo tee a /etc/hosts
  2. echo e “192.168.0.51 knode1”| sudo tee a /etc/hosts
  3. echo e “192.168.0.52 knode2”| sudo tee a /etc/hosts

部署主节点

在部署主节点前,我们默认你已经完成树莓派操作系统的安装,注意使用最新的 Raspbian,这个步骤可以参考网上的其他文章,这里不展开介绍。在主节点上,启动 SSH 服务,将主机名设置为 kmaster,并调整 IP 地址为 192.168.0.50

通过 ssh 连接主节点,并安装 k3s:

  1. local$ ssh pi@kmaster
  2. kmaster$ curl sfL https://get.k3s.io | sh –

等到命令完成后,一个单节点集群就已经运行起来了。让我们检查一下,在这个派上执行命令后,可以看到以下输出,

  1. kmaster$ sudo kubectl get nodes
  2. NAME STATUS ROLES AGE VERSION
  3. kmaster Ready master 2m13s v1.14.3k3s.1

部署工作节点

主节点完成安装后,我们开始部署工作节点。在工作节点上安装 K3s 时,会用到 join token 连接令牌,它可以使用如下命令从主节点上获取到。获取到令牌 join token 后,先保存起来,便于后续使用,

  1. sudo cat /var/lib/rancher/k3s/server/nodetoken

我们把两个树莓派工作节点的主机名分别设置为 knode1 和 knode2,并将 IP 地址分别调整为 192.168.0.51 和 192.168.0.52。调整完成后,就可以开始安装 K3s 了。

通过 ssh 连接到 knode1 上,执行类似的安装命令。在工作节点上安装 K3s 和之前差不多,需要加上额外的参数,表明它是一个工作节点,需要连接到已有的集群上,

  1. curl sfL http://get.k3s.io | K3S_URL=https://192.168.0.50:6443 \
  2. K3S_TOKEN= 保存下来的 JOIN_TOKEN sh 

K3S_TOKEN 的值需要替换成保存下来的连接令牌。命令执行完后,在 knode2 的树莓派上重复这个安装过程。

访问 Kubernetes 集群

knode2 的安装完成后,集群基本进入可用状态。这时如果我们要查看或更改集群,需要登录到集群的主节点 kmaster 上用 kubectl 操作,这有些麻烦。因此我们会将 kubectl 放到 PC 上使用。首先,在主节点上获取一些必要的配置信息,在 kmaster 上执行:

  1. sudo cat /etc/rancher/k3s/k3s.yaml

复制上面命令的输出,然后在本地 PC 上创建 ~/.kube 目录,在其中创建配置文件 config,并将上面复制的内容写入。随后我们需要编辑这个配置文件 ~/.kube/config,更新 server 的地址为网络地址。

找到记录 server: https://localhost:6443,修改为,server: https://192.168.0.50:6443

如果 PC 上还没有安装 kubectl 的话,就可以开始安装了。Kubernetes 官方网站上有各种平台安装 kubectl 的方法说明,我使用的是 Debian 系统,所以我的安装方法是这样的:

  1. sudo apt update && sudo apt install y apttransporthttps
  2. curl s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add –
  3. echo “deb https://apt.kubernetes.io/ kubernetes-xenial main” | sudo tee a/etc/apt/sources.list.d/kubernetes.list
  4. sudo apt update && sudo apt install kubectl

上面几个命令的作用是添加了一个包含 Kubernetes 的 Debian 软件库,获取 GPG 密钥,然后更新软件包列表并安装 kubectl。如果 kubectl 有更新,我们将会通过标准软件更新机制收到通知。

现在在本地 PC 上就可以查看 Kubernetes 集群了,:

local-pc$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
kmaster Ready master 12m v1.14.3-k3s.1
knode1 Ready worker 103s v1.14.3-k3s.1
knode1 Ready worker 103s v1.14.3-k3s.1

至此,我们已经完成一个三节点的 Kubernetes 集群的创建,可以开始愉快的玩耍了。

K3s 的蛋蛋

如果执行 kubectl get pods --all-namespaces,就会看到其它服务的一些 Pod,比如 Traefik。Traefik 在这里起到是反向代理和负载均衡器的作用,它可以让流量从单个入口进入集群后引导到集群中的各个服务。Kubernetes 支持这种机制,但 Kubernetes 本身不提供这个功能,因此 Traefik 是一个不错的选择。

来自:unfoxnews

使用 K3s 在 Raspberry Pi 上运行 Kubernetes 集群

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3022字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7985714
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛 NAS-5:飞牛 NAS 中的 Docker 功能介绍 大家好,我是星哥,今天给大家带来如何在...
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...
星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛 NAS-4:飞牛 NAS 安装 istore 旁路由,家庭网络升级的最佳实践 开始 大家好我是...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...