Kubernetes(或简称K8s)自2015年首次发布以来,随后在GitHub上进行了多次提交,一直在各个行业和专业社区中获得很高的评价。对于软件开发人员,DevOps和数据科学工程师来说,Kubernetes成功背后的原因是显而易见的,那么对于企业管理人员来说并不是那么明显。
因此,本文主要是针对有远见的企业主和高级管理人员,他们希望通过将工作负载迁移到Kubernetes来获得竞争优势。
为什么将应用程序相关的流程转移到Kubernetes成为主流?为了找出答案,让我们继续研究一些关键概念,介绍K8s带来的好处。
“我们选择Kubernetes的原因有两个。首先,相对于我们评估过的替代方案,我们更喜欢它,它符合我们的所有要求。其次,我们知道它将成为新兴标准。”
–《金融时报》技术总监Sarah Wells
什么是Kubernetes?
Kubernetes是用于编排容器化应用程序的云原生系统。最初由Google创建,如今由Cloud Native Computing Foundation(CNCF)维护更新。Kubernetes是最受欢迎的集群管理的解决方案之一,可实现应用程序顺畅的自动化部署,可操作性和可伸缩性。
简而言之,如果你的应用程序可以容器化(例如,借助Docker),它们绝对应该由Kubernetes运行和管理。在K8s的支持下,你可以大大提高本地或云托管基础架构的利用率,所有计算资源都可以在多个应用程序之间动态而合理地共享。
在撰写本文时,Kubernetes的最新版本是1.19.3。但是,GitHub和GoogleGroups上的社区已经开始讨论版本1.20.0的更新详细信息。由于Kubernetes是开源的,因此在更新,BUG修复和其他改进方面,它获得了来自全球专业社区的及时,快速的支持。基于Kubernetes的一些供应商也以其专有的SaaS,IaaS和PaaS产品进入市场。
开发人员对Kubernetes的看法
Kubernetes的最佳设计是优化你的微服务架构,并打包应用程序到容器中,这是开发人员和DevOps都很满意的一点。今年,Stack Overflow的年度开发人员调查,统计分析了全球的65,000名开发人员在软件工具,框架和技术方面的偏爱。根据调查,有71.1%的受访者认为Kubernetes是现在和将来与之合作的最佳平台。
企业对Kubernetes的看法
截至2020年,企业中的许多决策者,仍然对在其应用程序开发或运维中采用Kubernetes持谨慎态度。幸运的是,越来越多的早期行动者清楚地意识到向Kubernetes迁移的好处。根据Statista的最新研究,超过三分之一的组织已经在利用K8s的巨大潜力。通过这种方式,公司在应用程序开发,测试和生产环境中运行,效率显著提高。
Kubernetes用于什么?
Kubernetes的核心是关于容器化应用程序的编排。然而,由于容器本身处于心脏的中心,因此不能自给自足,无法在资源密集的生产环境中以有效的方式运行。
可悲但真实的是,大规模运行容器会大大增加应用交付时间和降低产品质量。由于未能满足客户的期望的交付时间,延迟最终会导致不好的客户体验。
因此,拥有一个 用于容器化应用程序的编排工具已经成为当务之急。这就是Kubernetes发挥作用的地方,它负责:
- 部署镜像和容器
- 管理容器和集群的扩展
- 容器和集群的资源管理
- 服务的流量管理
备注:之前发布的《我真的需要Kubernetes吗?》,有更为详尽的说明。
Kubernetes优化了DevOps和DataOps
你可能想知道,迁移到KubernetesDevOps和DataOps工程师有什么用?
尽管DevOps和DataOps之间存在差异,但他们有许多共同点–服务于相同的业务目标。将它们与Kubernetes相关联,在应用程序软件开发,部署和交付方面的效率会有所提高。
Kubernetes是功能强大的工具,为增强软件和开发人员水平提供了坚实的技术基础。这就是说,你的DevOps团队利用Kubernetes来能够获得更好的运维效率和更快的产品交付。同时,你的DataOps工程师可以通过强大的数据编排,及时更新,持久性数据存储以及跨平台或部门的简化数据管道,对海量数据进行BigData分析。
迁移到Kubernetes的5大好处
除了DevOps和DataOps团队可以从迁移到Kubernetes中受益,整个企业也会以相同的方式在自动部署和管理方面提高基于容器的应用程序的效率,K8s为整个公司的业务增加了很多价值。迁移到Kubernetes的关键优势可归结为以下几点:
1. 成本效益
英国《金融时报》运营与可靠性首席技术官Sarah Wells分享了他们在公司IT部门实施Kubernetes的实践知识。她的主题演讲《将150多种微服务迁移到Kubernetes的挑战》讲了很多内容,可以帮助你评估和检查K8s在托管,技术支持和迁移成本方面的有效性。
2. 一致性
通过一次运行多个容器,Kubernetes为软件开发,DevOps,QA,系统管理员和其他专家提供了一个整体的生产环境。无论在运行Kubernetes集群时可能发生什么变化,SDLC(Software Development Life Cycle,即软件生命周期) 的整体完整性都会得到保留。它为高性能和风险最小化做出了巨大贡献。
3. 可移植性
Kubernetes可以把在裸机或虚拟机(VM)群集上运行的容器,轻松地迁移到云环境中使用。由于应用程序是容器化的,因此它们完全与平台无关,并且可以跨各种框架进行编排。容器编排技术支持当今的大多数编程语言,这是迁移的另一个巨大优势。
4. 可扩展性
Kubernetes在处理与应用程序相关的工作负载时,完全可以应付任何扩展挑战。由于其弹性和容器集群过程的自动化,可以轻松地减轻负担,并在公司数据中心,私有云和公共云的功能之间重新分配负担,而不会造成任何应用程序性能问题或宕机。这对于DevOps而言意义重大,因为可自动灵活扩展的工作负载是一项巨大的改进。
5. 安全
最后,确保你的容器编排绝对安全。Kubernetes通过透明的控制机制和合规性协议为你提供了支持,例如基于角色的访问控制(RBAC),轻型目录访问协议(LDAP),增强安全性的Linux(SELinux)和可扩展访问控制标记语言(XACML) 。K8s提供增强的安全功能,可以保护你的IT基础架构,并确保跨各种生产环境运行的应用程序的安全。
总而言之,迁移到Kubernetes确实值得考虑。
译文链接: https://dzone.com/articles/why-migrate-to-kubernetes-in-2021-key-devops-and-d