树莓派上的 K8S 集群挂了,怎么办?

树莓派上的 K8S 集群挂了,怎么办?_第1张图片

作者 | Lukasz Raczylo

编译 | 云原生计算编辑部

 

昨晚在我的树莓派上进行更新的时候,所有节点突然停止检测网络接口,并且无法恢复!!!

 

那时我有两个选择,但都很费时:

 

方法1:提早起床,并按照我自己之前的文章手动重建,也许还会发现一些改进的余地。我已经亲身试验了很多次:这种方法很容易出错,主要是输入错误或跳过一个或两个步骤,然后在接下来的半个小时试图找出到底发生了什么事,再抹去一切并从头开始一遍又一遍。

 

方法2:及早醒悟并从头开始编码,这样可以让我的最终解决方案实现执行一次并永久使用,使整个集群的重建和生产尽可能容易地进行复制。当然,这将意味着更多的停机时间。但是,它的好处将是长期的,这使我不必担心集群本身,并最终将其视为一个稳定的解决方案,可以向其迁移整个本地基础架构。

 

 自动化传奇开始

 

在开始任何工作之前,我都非常专注于基础知识,并提出了在整个过程中遵循的一些原则。这样创建的环境各部分之间的代码之间逻辑上有很多分隔,因此亲爱的读者,您可以更容易地更改代码或注释掉整个文件以禁用此处或此处的少量功能。

 

原则1:在树莓派上设置 Kubernetes 集群可以分为三个部分:设置存储卡,在系统级别上进行节点配置,最后扩展 Kubernetes 资源。

 

原则2:在我的旧版 Intel NUC 上运行着一个NFS服务,该服务已连接到 DROBO 存储。很适合将它用作所有节点的永久共享存储。

 

原则3: 树莓派的集群在我的家庭网络中的 VLAN 中运行,因此保护它不是我的优先事项,所有服务以及节点都应易于访问,而无需处理 credentials。

 

要重现结果(或使其发挥作用),您将需要:

  • Mac:当我有空安装Linux VM时,我可能会在脚本中添加平台监测部分

  • Ansible:我使用的版本为2.10.6

  • Terraform:用0.13.4编写,也适用于0.14.8

  • Make:任意版本应该均可使用

 

 树莓派集群:步骤1

 

树莓派使用存储卡作为其硬盘驱动器。这可能不是最佳选择,并且绝对不会给您最大的读写操作速度,但对于业余爱好项目而言,应该足够了。

 

步骤1需要注意什么?

  • 格式化存储卡

  • 将存储卡分为两个分区-1GB +其余存储卡

  • 将Alpine Linux镜像复制到存储卡上

  • 创建系统覆盖

 

系统覆盖负责设置 Promisc 模式下的 eth0(对于MetalLB来说是必需的),并配置 SSH 免密登陆。

 

重要提示:检查001-prepare-card.

你可能感兴趣的:(云原生)