大佬都怎么用K8s?

2023-03-22 00:00:00 数据 集群 服务器 容器 机器

来自公众号:51CTO技术栈

译者 | 布加迪

Kubernetes是如今知名流行的容器编排引擎。Kubernetes之所以成为云原生计算的中心,是由于它是开源的,还有一个快速增长的生态系统。如果我们观察它在过去几年的发展和采用趋势,尤其是在云原生世界方面,就会发现它不仅仅是一种容器编排工具。它已经不再是一种容器编排引擎,现在是下一代云原生生态系统的主要构建模块。

开发人员正在试用Kubernetes,绝不仅仅将其当成容器管理器。本文讨论它在开源社区中几个已确立的企业模式和流行用例。

Kubernetes作为
无服务器计算的服务器

Kubernetes方面有经验的企业已认识到Kubernetes作为“无服务器的服务器”平台具有的全部潜力。无服务器现在因Kubernetes而被重新定义,而Knative近由CNCF(Kubernetes的监管组织)推出,将Kubernetes抽象为无服务器计算。Knative的核心由三个模块组成:

1. Build—从源代码构建映像。
2. Serving—在Kubernetes集群上部署功能(映像构建),并映射扩展和路由等。
3. Eventing—用servicing映射事件和消息摄取。

就像面向Kubernetes的kubectl一样,kn是终端上新的命令,用于在Kubernetes上启用函数即服务(FaaS)。它将容器映像作为构建模块,在Kubernetes上处理一切。Kubernetes作为一个无服务器平台在加快其在企业界的采用;然而,同类产品(比如AWS Lambda、Cloud Functions和Azure Functions)仍然依赖供应商锁定(即部署到各自的云上它们才管用)。

Kubernetes解决一些现有的挑战,比如工件大小的限制、法规遵从、数据主权和企业内部的细粒度控制。Kubernetes上的无服务器Knative与传统Kubernetes之间的主要架构差异来自额外的抽象层。作为无服务器的Kubernetes消除了重复的配置和构建任务。

图1
Kubernetes上的无服务(Kubernetes集群概况图)
Knative充当无服务器和事件驱动平台

Knative是Kubernetes生态系统的新成员,它有望颠覆构建基于事件的架构的无服务器选项。“扩展到零”、“从零扩展”和集群内构建等功能使Kubernetes成为一种全面的无服务器平台。

Kubernetes作为
大数据和机器学习平台

Kubernetes被视为数据科学和机器学习技术堆栈当中的大数据处理和有状态数据服务平台,并被广泛采用。它抽象了底层基础架构,优化了弹性计算的配置,在底层将GPU和CPU结合起来。Kubernetes非常适合机器学习,因为它本身就具备机器学习需要的所有调度和可扩展性。

与传统的数据集群环境相比,容器和Kubernetes组合在构建大数据软件时功能强大且灵活,传统的数据集群环境面临分布式集群管理的复杂性和计算规模开销。Kubernetes利用按需提供的GPU和CPU计算来改善大数据和机器学习处理。Kubernetes可以提供GPU加速计算和网络解决方案,以便在边缘运行机器学习和NLP处理。运行在协处理器上的Kubernetes正成为未来计算的重要部分。其动态资源利用的特性有利于数据科学工作负载,而训练模型或特征工程需求可以非常迅速地增减。

图2
基于Kubernetes的大数据和机器学习集群
用于机器学习处理的按需可扩展协处理器

KubeFlow、Spark、Hadoop、PyTorch和TensorFlow等框架现都在采用容器。有状态MLOps广泛采用容器和Kubernetes来启用多个集群,处理大型训练集和测试集,并存储学到的模型。为了简化数据建模框架的处理,一种选择是Kubeflow,这是一种面向Kubernetes的开源机器学习工具包,可以运行声明式的可配置作业。

Kubeflow对运行在Kubernetes上的复杂的大数据和机器学习管道进行抽象和编排。机器学习管道底层的Kubernetes是MLOps的骨干。它使得数据科学家和机器学习工程师很容易利用混合云(公共云或本地环境)来处理弹性和可扩展性。Kubernetes能够构建一个中立的大数据平台,避免云管理服务被供应商锁定。

Kubernetes作为
企业混合和多云集群的联合体

Kubernetes与基础架构无关,企业利用它来实现复杂的基于容器的集群联合。Kubernetes有助于将混合或多云环境合并到单一平台中,从而获得明显的好处。

托管服务不是解决所有问题的方案。公共云和私有主权云的便利性之间总是需要兼顾。Kubernetes被认为是这方面的解决之道,因为它支持多云访问,可以跨基于行业标准的API (Kubernetes接口)无缝交付应用程序。它通过将私有云和公共云集成抽象为单一联合平台,有助于企业借助Kubernetes实现法规遵从。

企业利用Kubernetes提供混合和多云集群方面的灵活性,从而避免供应商锁定。当前基于云的架构模式如何采用Kubernetes值得拭目以待。基于云的企业以及开源社区已意识到,Kubernetes不仅仅是一种容器管理工具。现在很显然,Kubernetes是一种完整的平台,可以为在混合云或多云模式上运行的应用程序管理生命周期。

Kubernetes作为平台即服务(PaaS)被广泛采用。然而在早期,Kubernetes的官方文档提到它是容器即服务(CaaS)。近,人们观察到Kubernetes的采用模式和使用已远远超出了CaaS,因此更新后的文档称Kubernetes是下一代PaaS。

Kubernetes是新时代的PaaS,意味着:

  • Kubernetes结合超融合基础架构(HCI)是一种新的私有或混合云替代方案。它让企业可以全面控制服务,并遵从监管法规。
  • Kubernetes使企业能够实现单一的抽象和简化型平台,以便在混合和多云环境上操作SRE、DevOps和DevSecOps。

图3
Kubernetes作为新一代PaaS
混合和多云容器联合作为新一代PaaS

结论

大型组织通常不愿意将平台控制权交给AWS Lambda、AWS Fargate或Azure Functions等。Kubernetes已成为一种事实上的选择,它集两者之所长:控制性和本地稳健性,以及来自声明式容器化生态系统的云原生计算弹性、可扩展性和弹性。Kubernetes结合Helm(IaC)、Grafana(遥测仪表板和警报)以及Prometheus(度量指标获取器)等开源工具,使其成为支持DevOps、对SRE友好的企业生态系统的完美组成部分。

数据科学和机器学习企业在加快采用Kubernetes作为大数据处理平台。近,机器学习和大数据框架正变得容器化,这使得Kubernetes成为底层数据集群和建模生态系统的。备受青睐的特性还包括Kubernetes抽象弹性GPU和CPU,以及按需可扩展和状态性。

Knative之类的Kubernetes抽象框架将Kubernetes带到了另一个层面。Kubernetes正在成为无服务器架构的新服务器,而且势头正猛。它正在为AWS Fargate和OpenShift提供开源替代方案。Kubernetes已被赋予了多种新的角色,而不仅仅“只是”一种容器编排工具。

原文链接:

https://dzone.com/articles/kubernetes-beyond-container-orchestration


---END---


相关文章