raspberry pi3_使用K3在Raspberry Pi上运行Kubernetes

raspberry pi3

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

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

所需材料

要创建本文描述的Kubernetes集群,我们将需要:

  • 至少一台Raspberry Pi(带有SD卡和电源适配器)
  • 以太网电缆
  • 将我们所有的Pi连接在一起的交换机或路由器

我们将从互联网上安装k3,因此它们将需要能够通过路由器访问互联网。

我们的集群概述

kmaster并分配一个静态IP 192.168.0.50(因为我们的本地网络是192.168.0.0/24)。 第一个工作节点(第二个Pi),我们将其命名为knode1并分配一个IP 192.168.0.51。 最后一个工作节点将命名为knode2,并分配IP 192.168.0.52。

显然,如果您使用不同的网络布局,则可以使用任何可用的网络/ IP。 只要在本文使用IP的任何地方替换您自己的值即可。

为了不必再通过IP引用每个节点,我们将其主机名添加到PC上的/ etc / hosts文件中。


   
   
echo -e "192.168.0.50\tkmaster" | sudo tee -a /etc/hosts
echo -e "192.168.0.51\tknode1" | sudo tee -a /etc/hosts
echo -e "192.168.0.52\tknode2" | sudo tee -a /etc/hosts

安装主节点

现在我们准备安装主节点。 第一步是安装最新的Raspbian映像。 我不会在这里进行解释,但是我有一篇详细的文章介绍了如何在需要时执行此操作。 因此,请安装Raspbian,启用SSH服务器,将主机名设置为kmaster ,并分配一个静态IP 192.168.0.50。

现在Raspbian已安装在主节点上,让我们启动主Pi并通过ssh进入它:

 ssh pi@kmaster 

现在我们准备安装k3s 。 在主Pi上,运行:

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

命令完成后,我们已经建立并运行了一个单节点集群! 让我们来看看。 仍在Pi上,运行:

 sudo kubectl get nodes 

您应该看到类似以下内容:


   
   
NAME     STATUS   ROLES    AGE    VERSION
kmaster  Ready    master   2m13s  v1.14.3-k3s.1

提取联接令牌

我们要添加几个工作节点。 在这些节点上安装k3时 ,我们将需要一个连接令牌。 连接令牌存在于主节点的文件系统上。 让我们将其复制并保存到以后可以使用的位置:

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

安装工作程序节点

为两个辅助节点获取一些SD卡,并在每个节点上安装Raspbian。 首先,将主机名设置为knode1并分配IP 192.168.0.51。 对于另一个,将主机名设置为knode2并分配IP 192.168.0.52。 现在,让我们安装k3s

引导您的第一个工作节点并ssh进入它:

 ssh pi@knode1 

在Pi上,我们将像以前一样安装k3s ,但是我们将为安装程序提供额外的参数,以使其知道我们正在安装工作程序节点并希望加入现有集群:


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

用“提取连接令牌”部分中的令牌替换join_token_we_copied_earlier 。 对knode2重复这些步骤。

从我们的PC访问群集

这将会是恼人不得不SSH到主节点来运行我们要检查或修改我们的集群kubectl随时随地。 因此,我们想将kubectl放在我们的PC上。 但是首先,让我们从主节点获取所需的配置信息。 SSH进入kmaster和运行:

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

复制此配置信息,然后返回到您的PC。 为配置创建目录:

 mkdir ~/.kube 

将复制的配置另存为〜/ .kube / config 。 现在编辑文件并更改行:

 server: https://localhost:6443 

成为:

 server: https://kmaster:6443 

为了安全起见,请将文件的读/写权限限制为您自己:

 chmod 600 ~/.kube/config 

现在,让我们在PC上安装kubectl (如果尚未安装)。 Kubernetes网站上有针对各种平台执行此操作的说明 。 由于我正在运行Linux Mint(一个Ubuntu衍生版本),因此我将在此处显示Ubuntu的说明:


   
   
sudo apt update && sudo apt install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | \
sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt update && sudo apt install kubectl

如果您不熟悉,上面的命令将为Kubernetes添加一个Debian存储库,获取其GPG密钥以确保安全,然后更新软件包列表并安装kubectl 。 现在,我们将通过标准软件更新机制获得有关kubectl的任何更新的通知。

现在我们可以从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

恭喜你! 您有一个有效的3节点Kubernetes集群!

K3S奖金

如果您运行kubectl get pods --all-namespaces ,您将看到Traefik的一些额外pods。 Traefik是一个反向代理和负载平衡器,我们可以使用它从单个入口点将流量引导到我们的集群中。 Kubernetes允许这样做,但不直接提供这样的服务。 默认情况下安装Traefik是Rancher Labs的不错选择。 这使得默认的k3s安装完全完成并可以立即使用!

我们将在以后的文章中探索如何通过Kubernetes 入口规则使用Traefik,并将各种好东西部署到我们的集群中。 敬请关注!

翻译自: https://opensource.com/article/20/3/kubernetes-raspberry-pi-k3s

raspberry pi3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值