集群概览
在这个集群里,我们会使用三个树莓派。其中一个树莓派作为主节点,我们将它命名为 kmaster
,并为其分配一个静态 IP 192.168.0.50
(注:假设使用的私有网段是 192.168.0.0/24),而另外两个树莓派作为工作节点,分别命名为 knode1
和 knode2
,也分别分配 192.168.0.51
和 192.168.0.52
两个 IP 地址。
当然,如果你实际的网络布局和上面不同,只要将文中所提及到的 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,这个步骤可以参考我,在这里就不展开介绍了。在安装完成之后,启动 SSH 服务,将主机名设置为 kmaster
,然后分配静态 IP 192.168.0.50
。
在主节点上安装 Raspbian 完成后,启动树莓派并通过 ssh
连接上去:
-
ssh pi@kmaster
在主节点上执行以下命令安装 K3s:
-
curl -sfL https://get.k3s.io | sh -
等到命令跑完以后,一个单节点集群就已经运行起来了。让我们检查一下,还在这个树莓派上执行:
-
sudo kubectl get nodes
就会看到这样的输出:
-
NAME STATUS ROLES AGE VERSION
-
kmaster Ready master 2m13s v1.14.3-k3s.1
获取连接令牌
之后我们需要部署工作节点。在工作节点上安装 K3s 的时候,会需要用到连接令牌,它放置在主节点的文件系统上。首先把连接令牌保存出来以便后续使用:
-
sudo cat /var/lib/rancher/k3s/server/node-token
部署工作节点
通过 SD 卡在每个作为工作节点的树莓派上安装 Raspbian。在这里,我们把其中一个树莓派的主机名设置为 knode1
,为其分配 IP 地址 192.168.0.51
,另一个树莓派的主机名设置为 knode2
,分配 IP 地址 192.168.0.52
。接下来就可以安装 K3s 了。
启动主机名为 knode1
的树莓派,通过 ssh
连接上去:
-
ssh pi@knode1
在这个树莓派上,安装 K3s 的过程和之前差不多,但需要另外加上一些参数,表示它是一个工作节点,需要连接到一个已有的集群上:
-
curl -sfL http://get.k3s.io | K3S_URL=https://192.168.0.50:6443 \
-
K3S_TOKEN=刚才保存下来的连接令牌 sh -
K3S_TOKEN
的值需要替换成刚才保存下来的实际的连接令牌。完成之后,在主机名为 knode2
的树莓派上重复这个安装过程。
通过 PC 访问集群
现在如果我们想要查看或者更改集群,都必须 ssh
到集群的主节点才能使用 kubectl
,这是比较麻烦的。因此我们会将 kubectl
放到 PC 上使用。首先,在主节点上获取一些必要的配置信息,ssh
到 kmaster
上执行:
-
sudo cat /etc/rancher/k3s/k3s.yaml