Kubernetes 的一个基本功能是水平自动伸缩:它能够在需要额外容量时启动新的 pods,并在负载减少时将它们关闭。然而,这只有在需要托管 pods 的节点已经存在时才有效。Cluster Autoscaler 可以做一些基本的集群扩展,由 pod 故障触发,但它的灵活性有限;然而,Karpenter 是一个更智能的、开源的 Kubernetes Operator 节点自动伸缩器:它分析当前工作负载和 pod 调度约束,选择适当的实例类型,然后根据需要启动或停止它。Karpenter 是一个像 Crossplane 这样的工具,它可以在集群外部配置云资源的操作者。尽管 Karpenter 最初是由 AWS 为 EKS 开发的,但它正在成为云 Kubernetes 服务提供商中默认的节点自动配置器,而 Azure 最近开始支持 Karpenter,推出了 AKS Karpenter Provider。
Kubernetes 的基本功能之一是它能够在需要额外生产力时自动启动新的 Pod,并在负载减少时关闭它们。这种水平自动缩放是一个有用的功能,但它只有在需要托管 Pod 的节点已经存在时才能工作。虽然 Cluster Autoscaler 可以做一些由 pod 故障触发的基本集群扩展,但它的灵活性有限;不过我们发现了另一个开源的 Kubernetes Operator 自动扩缩器 Karpenter,它内建了更多智能:可以分析当前的工作负载和 Pod 调度约束,以自动选择合适的实例类型,然后根据需要启动或停止它。 Karpenter 是一个具有如 Crossplane 等工具精神的 operator,可以在集群外提供云资源。 Karpenter 是云供应商通过其托管的 Kubernetes 集群原生提供的自动缩放服务的一个极具吸引力的工具。例如,AWS 现在在其 EKS Cluster Autoscaler 服务中支持将 Karpenter 作为首选的替代方案。