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

很长一段时间以来,我一直对用便宜的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到主机名的对应干系:

echo -e "192.168.0.50 kmaster"| sudo tee -a /etc/hosts

echo -e "192.168.0.51 knode1"| sudo tee -a /etc/hosts

echo -e "192.168.0.52 knode2"| sudo tee -a /etc/hosts

陈设主节点

在陈设主节点前,我们默认你已经完成树莓派操纵系统的安装,留意利用最新的 Raspbian,这个步调可以参考网上的其他文章,这里不展开先容。在主节点上,启动 SSH 处事,将主机名配置为 kmaster,并调解 IP 地点为 192.168.0.50。

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

local$ ssh pi@kmaster

kmaster$ curl -sfL https://get.k3s.io | sh -

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

kmaster$ sudo kubectl get nodes

NAME STATUS ROLES AGE VERSION

kmaster Ready master 2m13s v1.14.3-k3s.1

陈设事情节点

主节点完成安装后,我们开始陈设事情节点。在事情节点上安装 K3s 时,会用到 join token 毗连令牌,它可以利用如下呼吁从主节点上获取到。获取到令牌 join token 后,先生存起来,便于后续利用,

sudo cat /var/lib/rancher/k3s/server/node-token

我们把两个树莓派事情节点的主机名别离配置为 knode1 和 knode2,并将 IP 地点别离调解为 192.168.0.51 和 192.168.0.52。调解完成后,就可以开始安装 K3s 了。

通过 ssh 毗连到 knode1 上,执行雷同的安装呼吁。在事情节点上安装 K3s 和之前差不多,需要加上特另外参数,表白它是一个事情节点,需要毗连到已有的集群上,

curl -sfL http://get.k3s.io | K3S_URL=https://192.168.0.50:6443 \

K3S_TOKEN=生存下来的JOIN_TOKEN sh -

K3S_TOKEN 的值需要替换成生存下来的毗连令牌。呼吁执行完后,在 knode2 的树莓派上反复这个安装进程。

会见Kubernetes集群

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsddsp.html