Kubernetes 自动扩展工具 Karpenter 达到 1.0 里程碑

AWS发布Karpenter 1.0版本

亚马逊云服务(AWS)发布了Kubernetes集群自动扩展工具Karpenter的1.0版本,标志着该工具从测试版正式毕业,并引入了稳定的API和多项新功能。

Karpenter的背景与进展

Karpenter于2021年11月推出,现已发展成为一个全面的Kubernetes原生节点生命周期管理工具。该项目在Slack等行业领导者中广受欢迎,并成为GitHub上最受欢迎的AWS开源项目之一。

Karpenter的核心功能

Karpenter通过直接管理实例和使用启动模板,消除了预配置节点组和资源大小的需求。它能够实时响应不可调度的Pod,自动按需提供新节点,从而动态调整集群的计算能力,优化性能和成本效益。

Karpenter 1.0的主要新特性

  1. 增强的干扰控制:用户现在可以按原因设置干扰预算,更精细地控制节点干扰,如利用率不足、空置或漂移。
  2. 重命名的合并策略:为了更清晰,"WhenUnderutilized"策略已更名为"WhenEmptyOrUnderutilized"。
  3. 新的合并控制:新增"consolidateAfter"参数,允许用户指定Karpenter在添加或删除Pod后等待多长时间才开始合并节点。
  4. 终止宽限期:新增"terminationGracePeriod"设置,使集群管理员能更好地控制节点的生命周期和平稳终止。
  5. 漂移特性提升:默认启用漂移特性,替换偏离期望状态的节点。
  6. AMI选择变更:"amiSelectorTerms"字段现为必填,新增"alias"术语,允许用户选择特定版本的Amazon EKS优化AMI。
  7. 实例元数据服务(IMDS)访问限制:为提高安全性,默认阻止Pod访问IMDS。
  8. Kubelet配置迁移:Kubelet设置已迁移到EC2NodeClass API。
  9. NodeClaims不可变:NodeClaims在创建后不可修改,以符合预期行为。
  10. NodePool nodeClassRef变更:所有nodeClassRef字段现为必填,"apiVersion"字段已更名为"group"。
  11. 指标变更:多项Prometheus指标已修改,可能需要用户更新仪表板。

计划中的弃用项

包括移除某些注释和基于ConfigMap的配置。

升级建议

AWS为从测试版升级的用户提供了使用Kubernetes webhook转换的迁移路径,前提是用户已使用带有最新API的版本。建议用户在非生产环境中测试升级过程,并查看完整的迁移文档。

用户反馈

Karpenter 1.0的发布受到了广泛好评,许多用户对其功能表示赞赏,但也有人指出缺乏对GCP的支持,并探讨了是否可以将Karpenter功能完全集成到EKS控制平面中。

获取更多信息

用户可以通过Kubernetes Slack的#karpenter频道或GitHub获取更多信息或提供反馈。

阅读 28
0 条评论