为了账号安全,请及时绑定邮箱和手机立即绑定

如何像牛而不是宠物那样对待你的Kubernetes集群

戴尔技术公司的创始人,董事长兼首席执行官迈克尔戴尔认为,云不是一个地方,而是“作为一种IT方式”。

随着IT对每个公司变得越来越重要,理解云原生最佳实践不仅对开发人员而且对业务的每个部分都至关重要。本文介绍了宠物 vs. 牛的类比,以及它如何帮助企业提供更好的服务,缩短恢复时间,从而减少收入损失。

历史:宠物和牛

宠物 vs. 牛的类比已经成为DevOps服务模型的核心概念之一。微软的杰出工程师比尔·贝克(Bill Baker)在他的演讲“ Scaling SQL Server 2012 ” 中首次提出了这个想法,后来Gavin McCance 在CERN上讨论了OpenStack云。牛和宠物的区别在于他们每个个体对你的重要性。

直接引用Randy Bias关于这个类比历史的帖子:

在旧的做事方式中,我们将服务器视为宠物,例如Bob是邮件服务器。如果鲍勃摔倒了,那所有都玩完了。首席执行官无法收到他的电子邮件,这是世界末日。在新的方式中,服务器被编号,就像牛群中的牛。例如,www001到www100。当一台服务器发生故障时,它会被取回并在线路上更换。

宠物每个都非常重要,但牛可以互换。将生产软件基础架构从Pets转移到Cattle是创建高可用性(HA)系统的关键,该系统故障减少,具有较小的影响半径和更快的灾难恢复等特点。总而言之,迈向牛服务模式可帮助企业提供更好的服务,同时减少停机时间。

云原生最佳实践:宠物与牛

可靠地运行和管理可扩展的IT基础架构需要使用Cattle,Kubernetes集群也不例外。Joaquin Menchaca的博客很好地追踪了从Pet到Cat管理模型的演变,从裸机服务器到云原生容器和容器编排器。在每个阶段,堆栈的更高层变成了可替换的创建不可变的生产程序,并且仅需部署精确副本并且可以随时替换它们。如果需要更改任何内容,则会进行新部署,并且旧部署将退出。不可变的生产程序消除了变化,从而减少了部署失败,跨环境的一致性,简单的水平扩展以及简单的回滚和恢复过程。

为了利用这些优势并将不可变容器投入生产,Kubernetes已成为事实上的标准,因为它简化了部署和编排容器的过程。但是,安装,管理和更新Kubernetes本身并非易事。为了避免这些挑战,集群已成为新的宠物,公司运行一些大型重要集群,而不是多个较小的可更换集群。这与Kubernetes建立的云原生原则直接矛盾。为了从云原生方法中获得全部价值,公司必须将他们的Kubernetes集群视为牛。根据需要轮换它们,并将它们视为一次性可更换资产,而不是珍贵的宠物。

除了简化管理和节省运营时间和金钱之外,将Kubernetes集群作为牛来运行也可以对底线产生真正的影响。例如,一家年收入50亿欧元的电子商务公司完全依赖于其在线商店。生产中断的每一分钟都是10,000欧元的销售损失。在使用CNCF的案例研究中,当VSCO使用Kubernetes标准化其配置和中断恢复时,他们将停机时间减少了88%。云原生计算基金会已经看到企业转向使用像牛一样的Kubernetes集群。在过去的六个月里运行一到五个生产集群的组织减少了37%,而运行11-50个集群的组织增加了154%。将基础设施作为牛来处理可以使公司简单地更换基础设施并尽快恢复在线状态,从而节省销售额。

在Loodse,我们坚信将Kubernetes集群视为牛。我们使用多种工具使我们的开发人员和操作人员尽可能轻松地创建和使用Kubernetes集群,包括kind,KubeOne和Kubermatic。我们使用kind来快速生成Kubernetes集群,以在我们的CI / CD管道中运行集成和E2E测试。我们最近开源KubeOne,因为它使开发人员能够在任何云提供商,内部部署或裸机群集上快速安装,管理和升级高可用性Kubernetes集群。此外,我们正在积极地为cluster-api做出贡献,在上游Kubernetes中简化了集群创建,配置和管理的过程。最后,当我们为大规模安装设计Kubermatic时,我们也遵循了将集群转变为牛的最佳实践。这要求任何人只需点击一下即可创建,更新和删除Kubernetes集群。Kubermatic通过将用户集群Kubernetes控件组件作为种子Kubernetes集群中的容器(此处为体系结构详细信息)进行调整来实现此目的。如果工作集群的控制组件发生任何事情,它将自动重新启动并由种子Kubernetes集群替换,从而转动控制组件并将其自身集中到牛群中。

结论

无论堆栈的哪一层,运行Cat而不是Pets都是计算基础架构的最佳实践。它为客户提供更好的服务,缩短恢复时间,并消除生产中断带来的收入损失。Kubernetes成为容器编排的标准,因为它允许您像牛一样对待容器。Kubernetes集群本身也应该像牛一样对待。


点击查看更多内容
“小礼物走一走,来慕课关注我”
赞赏支持
Tony Bai 说 去围观
Tony Bai,智能网联汽车独角兽公司先行研发部负责人,Go语言专家,资深架构师,《Go语言精进之路》作者。
评论

作者其他优质文章

正在加载中
全栈工程师
手记
粉丝
7756
获赞与收藏
477

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消