Kubernetes 显然对数据科学家来说是一个有用的功能。理解了这一点之后,重要的是要了解在无服务器环境中使用它的奇妙之处。
首先,消除一个误解很重要。无服务器并不意味着没有服务器。它只是意味着服务器被抽象到一定程度,用户无需考虑其应用程序的执行方式。您只需提供打包的应用程序或容器,无服务器平台就会管理所有底层基础设施考虑事项。这意味着它仍然可以用于处理基础设施不同级别的数据项目。 即使 Kubernetes 具有诸多优势,用户仍然需要管理底 法国手机号码数据库 层服务器。虽然托管 K8s 在一定程度上减轻了这种负担,但它仍然无法完全消除服务器。它们将管理控制平面,但您仍然需要在您正在开展的各种数据科学项目上配置和管理工作节点。 像 AWS Fargate 这样的无服务器实现完全消除了数据科学家管理工作节点的需要,并将工作负载转移到无服务器架构中。这种方法将服务器(节点)管理的责任完全从用户转移到服务提供商。无服务器还可以[color=var(--hyperlink-color,inherit)]降低成本,因为用户只需为使用的资源付费。此外,它确保不会发生过度配置,同时具有根据需要扩展的灵活性。 没有节点的 Kubernetes?每个工作节点都有一个名为 kubelet 的代理,用于将其连接到 Kubernetes API。当用户通过 kubectl 命令与 Kubernetes API 交互时,kubelet 允许每个节点从 API 接收有关如何管理特定节点中的 pod 的指令。每当 kubelet 在服务器上运行并连接到 K8s API 时,Kubectl 还会使用 PodSpecs 来管理底层 pod。 这为试图提高可扩展性和定制项目的数据科学家打开了许多大门。数据科学项目的最大好处归结为虚拟化。
在无服务器设置中,此功能通常由虚拟 kubelet 模拟。这允许 Kubernetes API 将虚拟 kubelet 实现识别为集群内的节点。但是,这个虚拟 kubelet 将在其他地方调度容器,通常是在受支持的后端,如 AWS Fargate、AWS Batch、HasiCorp Normad 等……尽管用户可以以通常的方式与 K8s 集群交互,但底层容器将在无服务器容器服务中调度。因此,通过这种实现,用户可以获得无服务器的优势,而无需牺牲 Kubernetes 的功能。虚拟 kubelet 最好的部分是它甚至允许混合配置,其中实际的工作节点和虚拟 kubectl 可以在集群中共存。
|