您当前的位置:首页 > 电脑百科 > 程序开发 > 容器

Kubernetes 是我的正确选择吗?

时间:2023-08-24 13:26:33  来源:51CTO  作者:

作者丨Rak Siva

编译丨Noe

如今,你几乎可以将任何应用程序封装在容器中以供执行。容器解决了很多问题,但它们带来了新的编排挑战。由于大量致力于构建云原生应用程序的团队对容器编排的需求不断增长,Kube.NETes 作为解决这一挑战的强大工具而广受欢迎。

在管理良好的 Kubernetes 环境中构建提供了许多好处,例如自动缩放、自我修复、服务发现和负载平衡。然而,拥抱 Kubernetes 的世界通常意味着不仅仅是采用容器编排技术。团队需要战略性地考虑,“Kubernetes 是我的正确选择吗?”他们必须通过评估这个更广泛问题的几个组成部分来做到这一点。

一、我的团队组成是否适合 Kubernetes?

不乏赞扬 Kubernetes (K8s) 功能的文章,这不是我们要争论的。在许多情况下,K8s 是正确的选择。也就是说,与 K8s 的直接交互和维护并不适合所有团队和项目。

1、拥有云原生应用程序的小型初创公司:这些团队会发现 Kubernetes 的直接管理是一种复杂、耗时的分散注意力,无法实现他们发布和扩展产品的目标。鉴于他们的规模,团队将没有足够的带宽来管理 Kubernetes 集群,同时也开发他们的应用程序。

2、具有各种应用程序类型的企业团队:对于具有专业技能的大型团队,Kubernetes 是一个很好的选择。但是,仍应考虑完全托管的容器运行时或 Kubernetes 即服务产品。这些服务允许有限的 DevOps 资源专注于团队生产力、开发人员自助服务、成本管理和其他关键项目。

3、具有 DevOps 文化的中型公司:虽然这些团队为迁移到 Kubernetes 做好了更充分的准备,但这是一个重大项目,将破坏现有的工作流程。同样,托管产品无需大量投资即可释放 Kubernetes 的许多好处。

4、软件咨询:虽然这些团队适应性强,但依赖 Kubernetes 可能会限制他们为具有不同需求的客户提供服务的能力,因为它会促使咨询公司推荐它,即使它不是最合适的。

二、我的项目有多复杂?K8s 矫枉过正吗?

与其确定 K8s 是否满足你的某些要求,不如考虑确定与 Kubernetes 功能不太一致或引入不必要的复杂性的特定特征和要求。

1、最小的可扩展性需求:如果项目具有持续的低流量或可预测且稳定的资源需求,而没有显着的扩展要求,则 Kubernetes 将引入不必要的开销。在这些情况下,托管容器运行时或虚拟专用服务器 (VPS) 解决方案通常代表更好的价值。

2、简单的单片应用:如果项目是一个具有有限依赖项的整体应用程序,并且不需要独立可扩展的服务或极高的实例计数,那么 Kubernetes 对于其需求来说太复杂了。

3、静态或有限的基础结构:如果项目具有小型或静态基础设施,而资源使用没有太大变化,那么更简单的部署选项(如托管服务或 VPS)就足够了。

4、有限的开发运营资源:Kubernetes 需要容器编排方面的专业知识,这对于 DevOps 资源有限的项目或团队不愿意投资学习 Kubernetes 来说是不可行的。无需这种额外投资,仍然可以实现容器的好处。

5、原型设计和短期项目:对于开发生命周期较短或生产持续时间有限的项目,Kubernetes 开销是合理的。

6、项目成本限制:如果项目有严格的预算限制,那么设置和维护 Kubernetes 集群的额外成本将不可行。在考虑完成这项工作所需的高技能团队成员的成本时尤其如此。

7、基础设施要求:Kubernetes 可能是资源密集型的,需要强大的基础设施才能有效运行。如果你的项目是资源需求适中的中小型项目,则使用托管服务或无服务器更为合适。

仅凭需求的复杂性并不能决定 Kubernetes 对你的团队来说是完美的还是过度的;但是,它可以帮助你以一种或另一种方式倾斜。如果你直接使用 Kubernetes,它本质上不会提升你的产品。相反,它的优势在于打造一个弹性平台,让你的产品可以在此平台上蓬勃发展。

其结果是,随着你承诺将自己的工作置于它之下,对产品的开发工作将进一步远离成为业务的基础。

这揭示了一个真正的问题:我们是在构建一个平台,还是在努力加快上市时间,为我们的核心业务目标提供更直接的投资回报?

三、我们有必要的技能吗?

Kubernetes 通常因其具有挑战性的学习之旅而得到认可。是什么导致了这种复杂性?为了清楚起见,我根据特定标准策划了一份主题列表,以帮助衡量提高技能所需的努力。

注意:这些复杂程度将根据个人背景和先前的经验而有所不同。

对于缺乏必要专业知识或学习时间的团队,整个开发和部署过程可能会变得不堪重负且缓慢,这对于时间紧迫或团队较小的项目来说并不健康

四、成本影响是什么?

虽然 Kubernetes 本身是开源和免费的,但运行它却不是。你需要考虑与基础架构相关的费用,包括服务器、存储和网络的成本以及隐性成本。

第一个隐性成本在于其管理和维护——用于培训团队、故障排除、维护系统、维护内部工作流程和自助服务基础设施的时间和资源。

由于各种原因,在计算成熟的 Kubernetes 环境的成本时,许多人忽略了这项工作所需的高技能员工的薪水。警惕完全托管或无服务器产品与自我管理的 Kubernetes 之间的许多有缺陷的比较。他们通常无法考虑员工成本以及与 Kubernetes 时间损失相关的机会成本。

第二个隐性成本与 Kubernetes 生态系统有关。拥抱 Kubernetes 的世界通常不仅仅意味着采用容器编排平台。这就像踏上一个广阔的大陆,拥有丰富的功能以及各种供应商提供的辅助工具、服务和产品的整个宇宙,最终会带来其他成本。

五、结论

一个好的工具不在于它的炒作或受欢迎程度,而在于它如何解决你的问题并融入你的生态系统。在云原生应用程序的领域,Kubernetes在对话中占据了相当大的份额,这是可以理解的。但是,我鼓励团队考虑通过OpenShift,Docker Swarm或由Nitric等框架编排的无服务器和托管服务等解决方案实现的不同方法的权衡。

原文链接:https://thenewstack.io/kubernetes-isnt-always-the-right-choice/



Tags:Kubernetes   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Kubernetes 究竟有没有 LTS?
从一个有趣的问题引出很多人都在关注的 Kubernetes LTS 的问题。有趣的问题2019 年,一个名为 apiserver LoopbackClient Server cert expired after 1 year[1] 的 issue 中提...【详细内容】
2024-03-15  Search: Kubernetes  点击:(6)  评论:(0)  加入收藏
Kubernetes 集群 CPU 使用率只有 13% :这下大家该知道如何省钱了
作者 | THE STACK译者 | 刘雅梦策划 | Tina根据 CAST AI 对 4000 个 Kubernetes 集群的分析,Kubernetes 集群通常只使用 13% 的 CPU 和平均 20% 的内存,这表明存在严重的过度...【详细内容】
2024-03-08  Search: Kubernetes  点击:(12)  评论:(0)  加入收藏
聊聊 Kubernetes 网络模型综合指南
这篇详细的博文探讨了 Kubernetes 网络的复杂性,提供了关于如何在容器化环境中确保高效和安全通信的见解。译自Navigating the Network: A Comprehensive Guide to Kubernete...【详细内容】
2024-02-19  Search: Kubernetes  点击:(37)  评论:(0)  加入收藏
Kubernetes是什么?主要特点是什么?
Kubernetes是什么?Kubernetes,也称为K8s,是一个开源的容器编排系统,由Google首次开发和维护。它允许容器化的应用程序在集群中自动部署、扩展和管理。Kubernetes提供了一种容器...【详细内容】
2024-02-01  Search: Kubernetes  点击:(154)  评论:(0)  加入收藏
开发者的Kubernetes懒人指南
你可以将本文作为开发者快速了解 Kubernetes 的指南。从基础知识到更高级的主题,如 Helm Chart,以及所有这些如何影响你作为开发者。译自Kubernetes for Lazy Developers。作...【详细内容】
2024-02-01  Search: Kubernetes  点击:(50)  评论:(0)  加入收藏
Kubernetes Informer基本原理,你明白了吗?
本文分析 k8s controller 中 informer 启动的基本流程不论是 k8s 自身组件,还是自己编写 controller,都需要通过 apiserver 监听 etcd 事件来完成自己的控制循环逻辑。如何高...【详细内容】
2024-01-30  Search: Kubernetes  点击:(37)  评论:(0)  加入收藏
Kubernetes 100个常用命令!
这篇文章是关于使用 Kubectl 进行 Kubernetes 诊断的指南。列出了 100 个 Kubectl 命令,这些命令对于诊断 Kubernetes 集群中的问题非常有用。这些问题包括但不限于:• 集...【详细内容】
2024-01-03  Search: Kubernetes  点击:(76)  评论:(0)  加入收藏
一文读懂Kubernetes部署策略
在这篇文章中,我们将深入研究 Kubernetes 部署概念和一些常见策略,了解每种策略的优缺点。合适的部署策略使我们能够在发布应用程序时最大限度地减少停机时间、增强客户体验并...【详细内容】
2024-01-03  Search: Kubernetes  点击:(59)  评论:(0)  加入收藏
从Kubernetes的探针到DevOps
今天在群里又看有人问如何设置 Kubernetes 的探针,感觉要补充的话太多了,结合我们在一些 DevOps 项目中痛苦的体验,今天一劳永逸的全部说完,此外,也为大家展现一下为什么 DevOps...【详细内容】
2023-12-27  Search: Kubernetes  点击:(114)  评论:(0)  加入收藏
如何基于Kubernetes运行Nacos高可用集群
Nacos(Namings and Configuration Management)是阿里巴巴开源的一个易于构建云原生应用的动态服务发现、配置管理和服务管理平台。以下是Nacos的一些主要功能和特点: 服务发现...【详细内容】
2023-12-18  Search: Kubernetes  点击:(69)  评论:(0)  加入收藏
▌简易百科推荐
Docker 和传统虚拟机有什么区别?
我有一个程序员朋友,他每年情人节都要送女朋友一台服务器。他说:“谁不想在过节当天收到一台 4核8g 的服务器呢?”“万一对方不要,我还能留着自己用。” 给他一次过节的机会,他能...【详细内容】
2024-03-26  小白debug  微信公众号  Tags:Docker   点击:(12)  评论:(0)  加入收藏
掌握Docker网络驱动程序:优化容器通信
Docker为在容器内包装、交付和运行应用程序提供了一个强大的平台,从而彻底改变了容器化。网络是容器化的重要组成部分,Docker提供了各种网络驱动程序来支持容器之间的通信以...【详细内容】
2024-03-22    51CTO  Tags:Docker   点击:(10)  评论:(0)  加入收藏
Containerd容器管理
Nginx 指定容器名称 使用 ctr container create 命令创建容器后,容器并没有处于运行状态,其只是一个静态的容器。容器基本操作容器基本操作主要是 ctr image 命令,查看命令帮...【详细内容】
2024-03-20  云原生运维圈  微信公众号  Tags:容器   点击:(13)  评论:(0)  加入收藏
如何基于Docker镜像逆向生成Dockerfile
引言你是否曾经遇到过一个想要使用的 Docker 镜像,但却无法修改以适应你的特定需求?或者你可能发现了一个喜欢的 Docker 镜像,但想要了解它是如何构建的?在这两种情况下,将 Docke...【详细内容】
2024-03-07  云原生运维圈  微信公众号  Tags:Docker   点击:(22)  评论:(0)  加入收藏
Kubernetes是什么?主要特点是什么?
Kubernetes是什么?Kubernetes,也称为K8s,是一个开源的容器编排系统,由Google首次开发和维护。它允许容器化的应用程序在集群中自动部署、扩展和管理。Kubernetes提供了一种容器...【详细内容】
2024-02-01    简易百科  Tags:Kubernetes   点击:(154)  评论:(0)  加入收藏
我们一起聊聊容器资源自愈
在企业实际在使用容器这类资源的时候,除了技术本身,要考虑的其他问题也会很多。企业管理的容器有千千万万,出于效率考虑,对于有特殊需求的容器如何进行批量创建和管理呢,这就需要...【详细内容】
2024-01-30  匠心独运维妙维效  微信公众号  Tags:容器   点击:(47)  评论:(0)  加入收藏
Docker与Docker Compose入门:释放你应用部署的威力
今天给大家介绍一项强大而有趣的技能,那就是使用 Docker 和 Docker Compose 来释放你的应用部署的威力!无论你是一名开发人员还是系统管理员,掌握这个技能都将为你的工作带来巨...【详细内容】
2024-01-17  waynblog  微信公众号  Tags:Docker   点击:(65)  评论:(0)  加入收藏
Docker镜像与容器的交互及在容器内部执行代码的原理与实践
Docker作为一种流行的容器技术,已经成为现代应用程序开发和部署的重要工具。在Docker中,镜像是构建和运行容器的基础,而容器则是基于镜像创建的可执行实例。Docker镜像与容器的...【详细内容】
2024-01-10  编程技术汇  今日头条  Tags:Docker   点击:(77)  评论:(0)  加入收藏
如何在 Ubuntu 上安装 Docker
使用 Docker 意味着开启一个新的计算领域,但如果你刚刚开始使用 Docker,安装可能看起来是一项艰巨的任务。在 Ubuntu 上安装 Docker 有两种推荐的方法: 从 Ubuntu 的仓库安装 D...【详细内容】
2024-01-04    Linux中国  Tags:Docker   点击:(124)  评论:(0)  加入收藏
从Kubernetes的探针到DevOps
今天在群里又看有人问如何设置 Kubernetes 的探针,感觉要补充的话太多了,结合我们在一些 DevOps 项目中痛苦的体验,今天一劳永逸的全部说完,此外,也为大家展现一下为什么 DevOps...【详细内容】
2023-12-27  云云众生s  微信公众号  Tags:Kubernetes   点击:(114)  评论:(0)  加入收藏
站内最新
站内热门
站内头条