为什么云端Kubernetes并不像看起来那样与供应商无关,以及该如何应对

F5生态系统 | 2020年11月26日
kubernetes1

Kubernetes是一个开源平台。因此,您可能会认为它不受特定供应商限制,可以轻松地从一种Kubernetes实现迁移到另一种。

但事实并非如此。实际上,许多Kubernetes解决方案,尤其是与特定公有云绑定的解决方案,并不像您想象的那样不受供应商限制。

好在,即使希望避免供应商锁定,也不意味着无法利用公有云托管Kubernetes。您仍然可以这样做,但必须合理设计Kubernetes策略,既避免受制于特定云提供商的Kubernetes服务,又能充分利用云端Kubernetes的优势。

基于云的Kubernetes方案

如今,所有主流公有云都通过SaaS架构提供托管式Kubernetes服务。Amazon提供Elastic Kubernetes Service,Azure提供Azure Kubernetes Service,Google提供Google Kubernetes Engine,IBM提供IBM Cloud Kubernetes Service。

这些服务将云基础设施与有助于实现Kubernetes部署和管理自动化的软件相结合,因此对于希望快速启动并运行Kubernetes的组织而言,是一种颇具吸引力的解决方案。

云端Kubernetes的供应商锁定风险

这些云Kubernetes服务看似不受特定供应商限制,这也增强了其吸引力。表面上看,从一个Kubernetes SaaS平台迁移到另一个平台似乎相当容易。所有这些平台都基于标准的开源Kubernetes,提供相同的Kubernetes工具(如kubectl),通常也支持相同类型的存储和网络配置。因此,它们看起来基本不受特定供应商限制。

然而,深入了解后就会发现,以托管服务形式提供Kubernetes的公有云并不像表面上那样灵活、通用。它们会以各种方式与所在公有云中运行的其他服务集成,并依赖这些服务。无论使用哪种云,都必须在该云上创建IAM策略来管理Kubernetes集群。身份验证可能需要使用特定于供应商的服务,例如Azure Kubernetes Service可能会使用Azure Active Directory。此外,Kubernetes服务通常会建议使用某些附加工具或替代工具,即使并非强制要求。例如,Google Kubernetes Engine建议使用gke-deploy而非kubectl,而Elastic Kubernetes Service则设计为与Amazon的专有工具eksctl配合使用。

因此,无论使用哪种云来托管Kubernetes,其底层Kubernetes代码可能都相同。尽管从技术上讲,确实可以坚持使用通用工具,但最终最有可能采用的工具和配置并非与供应商无关,而是取决于所使用的具体Kubernetes服务。

如果要从Azure Kubernetes Service迁移到Google Kubernetes Engine,这会形成一大障碍。即使可以直接迁移Kubernetes工作负载,也无法以同样的方式迁移支持这些工作负载的工具链和配置文件。

避免受云端Kubernetes平台锁定

如果希望在部署Kubernetes集群时利用公有云的便利性和可扩展性,同时避免供应商锁定,可以采用两种基本解决方案。

一种方案是使用基于云的虚拟机手动搭建集群,并自行管理。采用这种方法,虽然无法获得云提供商SaaS Kubernetes产品所提供的自动化和集成功能,但仍可使用其基础设施。由于不使用专用工具,将集群从一家云托管服务商迁移到另一家时会更容易,无需重新构建所有内容。当然,这种方案的缺点是,搭建和管理集群需要投入大量人工。

另一种方法更加自动化且更具可扩展性,即使用Volterra的VoltStack®服务来管理集群,无论这些集群位于哪个云中。采用这种策略,实际上是用适用于任何公有云的集中式命令与控制中心,取代各供应商平台中针对特定云的工具,从而可以轻松地在不同公有云之间迁移或复制集群。这样既能获得与Google Kubernetes Engine和Azure Kubernetes Engine等服务相同的可管理性,又不会受制于特定公有云。

结论

不要误以为,无论在何处或以何种方式运行,Kubernetes都没有区别。不同的云端Kubernetes服务之间存在显著差异,这可能会阻碍Kubernetes集群从一个云迁移到另一个云(更不用说还会增加跨云管理集群的难度,因为每个云使用的工具集都不同)。

好消息是,这一问题有解决方案:使用云中立的Kubernetes管理解决方案(例如Volterra的VoltStack服务)来管理所有集群,既可摆脱对特定云提供商的依赖,又能继续享受基于云的Kubernetes所带来的易用性。

分享
标签: 2021

相关博客文章

F5纪念2021年世界艾滋病日
F5生态系统 | 2021/12/01

F5纪念2021年世界艾滋病日

值此世界艾滋病日,F5郑重承诺,将与员工、客户、社区和合作伙伴共同努力,消除社会对HIV感染者仍然存在的污名与偏见。

Thingbot正转变为攻击平台
F5生态系统 | 2018/11/29

Thingbot正转变为攻击平台

Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。

借助F5全新Quick Start,在AWS上快速开展业务
F5生态系统 | 2018/11/20

借助F5全新Quick Start,在AWS上快速开展业务

在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。

为什么声明式模型对NetOps自动化至关重要?
F5生态系统 | 2018/04/30

为什么声明式模型对NetOps自动化至关重要?

为什么声明式模型对NetOps自动化至关重要?阅读F5博客,了解基础设施即代码如何简化网络扩展。

开源聚焦:F5基础设施即代码与多云可管理性
F5生态系统 | 2017/11/16

开源聚焦:F5基础设施即代码与多云可管理性

开源聚焦:基础设施即代码与多云。阅读博客,了解模板和Terraform如何简化F5应用服务的部署。

破解IT“无解困局”的答案:私有云
F5生态系统 | 2016/09/12

破解IT“无解困局”的答案:私有云

破解IT“无解困局”的答案:私有云。阅读F5博客,了解本地部署的敏捷性如何化解安全与速度难以兼顾的问题。