千家信息网

Bare Metal K8S集群是怎样在Chick-fil-A 大规模使用的

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇文章给大家分享的是有关Bare Metal K8S集群是怎样在Chick-fil-A 大规模使用的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一
千家信息网最后更新 2025年02月01日Bare Metal K8S集群是怎样在Chick-fil-A 大规模使用的

本篇文章给大家分享的是有关Bare Metal K8S集群是怎样在Chick-fil-A 大规模使用的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

美国快餐连锁店Chick-fil-A在其2000多家餐厅的边缘计算中使用着Kubernetes,在规模上看,这意味着有大约6000台设备上同时运行着Kubernetes。其中与此相关的最大的一个挑战是:如何在餐厅的物理机上部署和管理这么多Kubernetes集群。本文由Chick-fil-A的技术团队所写,分享他们在Kubernetes集群管理技术选型、物理机上Kubernetes集群的安装和管理方面的经验。

大多数情况下,Kubernetes都在云中部署,或由熟练Kubernetes的技术人员在物理机上部署(再或者至少配有远程访问)。但对Chick-fil-A而言,我们的Kubernetes部署是由那些仅关注初始硬件安装的安装人员完成的。因为其自启动的特性,它们从不需要直接连接到计算设备--而是连接以太网和电源线,并通过查看应用程序app来检查集群的状态 。整个替换过程由对技术并不太专业的餐厅老板/运营者或他们的团队完成。

最大的挑战是,我们的边缘计算部署并不完全在"数据中心环境"中。

集群管理:我们考虑过的选择

为了解决集群管理的挑战,我们做过全面的技术调研,曾考虑过如下几个选项:

  • Kubespray - 我们最开始调查了基于Ansible的Kubespray,但我们发现它相当脆弱。当事情进展顺利时,我们能得到了一个集群;但当事情进展不太顺利时,我们就会创建一块难以变回计算机的"砖块"。我们还发现使用Kubespray启动集群的过程非常缓慢,通常在我们的硬件栈上花费的时间长达30分钟。我们相信Kubespray能有更长远的发展,但就我们的调研结果而言,我们认为得从别的方向探索别的解决方案。

  • Openshift - Openshift可以创建Kubernetes集群,但我们不喜欢在至关重要的基础设施部分跟供应商的解决方案捆绑地太过紧密,不想承担未来可能被技术锁定的风险。

  • Kops - 我们是Kops的忠实粉丝,我们用它来部署我们云的"控制面板"Kubernetes集群。不幸的是,当我们将其使用到我们的边缘计算中时,Kops并不是一个可行的裸机解决方案。我们期待看到它在未来的发展。

  • Kubeadm - Kubeadm是另一个不错的Kubernetes集群实用程序。Kubeadm项目看起来很有发展前景,但我们认为它比一些替代品 (尤其在其灵活性上)复杂的多,包括...

RKE

就我们目前的选择而言,RKE是最终赢家。RKE是由Rancher Labs提供的开源的Kubernetes集群管理引擎。虽然我们暂时未使用Rancher 2.0来管理我们的集群,但我们确实喜欢使用RKE来初始化和维护集群的简单性。

要使用RKE,你需要确定一个领导节点并为其提供一个配置YAML文件,YAML文件中包含有关该集群的数据,主要是参与集群活动的节点的主机名。

如果集群中的节点发生添加、删除、或死亡,则配置文件需要拥有一个对当前和未来节点的准确描述。如果配置不能保持持续最新,集群就会失败。虽然我们认为缺少节点不应该使群集初始化/更新失败,但目前来看实际情况正是如此。

安装过程

我们在餐厅的安装过程非常简单--将设备拆箱,将其插入电源和标记的交换机端口,就是这样。它们会自动启动电源,并实现自引导和集群创建。RKE让非技术用户能够在不了解Kubernetes甚至整体架构的情况下,通过无比简单的过程执行安装和替换的工作,这一体验非常棒,不过它也确实需要一些更复杂的引导过程。

尚未被纳入集群的节点之间,需要彼此协调以确定谁将被纳入到集群中。他们还需要选出一个主节点来通过RKE执行集群创建。

Highlander

为了解决这个问题,我们开发了Highlander。因为我们只能有一个集群发起者。

Highlander是我们基础边缘镜像的一部分。当每个节点启动时,UDP会广播其存在并询问是否存在已建立的领导者。它也会开始倾听自己。几秒钟后没有回复,它将发送另一个广播,宣布自己成为领导者。有什么异议吗?如果没有反对的讯息,该节点将很快成为集群领导者,并以领导者身份回应未来接收到的所有请求。

如果另一个节点已经声明了自己领导者的角色,新节点将确认该声明。现有的领导者会执行"RKE up"将新节点纳管到现有的集群中。

节点们会定期沟通以确保领导者仍在其中。如果旧领导者已经死亡,一个新的领导者将通过一个使用随机睡眠和领导声明的简单协议来选举而出。虽然这很简单不复杂,容易推理和理解,但它能实现成规模地有效工作。

领导者选举完成后,Highlander还能确保集群被正确得配置。在我们的环境中,这包括:

• 将 KubeDNS切换成CoreDNS

• 创建Istio或其他核心控制面板节点

• OAuth身份认证

注意:我们的每个节点都有自己的身份和短暂的JWT来访问已验证的资源。Highlander提供此身份,并以Kubernetes秘钥的形式来提供token令牌。

整合过程

尽管我们在文中主要关注集群初始化,接下来我们也介绍一下在餐厅中实时进行节点初始化的整个流程。

以上就是Bare Metal K8S集群是怎样在Chick-fil-A 大规模使用的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

集群 节点 领导者 过程 管理 技术 餐厅 身份 边缘 配置 复杂 情况 文件 方案 物理 电源 解决方案 设备 发展 工作 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 普陀区品质网络技术服务代理商 软件开发方法主要包括哪些 测绘技术成果管理数据库 网络安全与法演讲稿 开福区政府网络安全招标 maven 插件连接数据库 网络安全答题答案河北张家口 计算机网络技术适合什么样的人 网络安全背后是公共责任 校友数据库 代理服务器与防火墙的主要区别 网维大师服务器管理员 非标准协议网络安全 江苏网络安全测评 关于网络安全宣传周会议目的 共享服务器找不到域位置 闪耀暖暖安卓官服服务器 网络安全方面招聘套路 娱网棋牌服务器连接错误 300大作战第一个服务器叫什么 计算机网络技术 经济 寒武纪系统软件开发面试 火线精英服务器怎么获得 村级小学网络安全责任书 福建在线网络技术开发常见问题 我的世界缺管理员的服务器 拉曼数据库查询 康宏锦云网络技术工作室 游戏服务器集群管理 提升网络安全和技能
0