Kubernetes Meetup Tokyo #67 LT 枠で登壇させていただきました。
connpass: https://k8sjp.connpass.com/event/330635/
youtube: https://www.youtube.com/live/tz3--1Mf0DU?si=AvXRjTcYvKe5UV01&t=4703
#k8s-jp
Karpenter Dive Deep
Karpenter Under the Hood
Karpenter の仕組みを解明
## Karpenter とは?
Karpenter は、 Cluster Autoscaler に近いようなものだと一般的に考えられていると思います。
Karpenter が登場した背景は、Cluster AutoscalerをAWS EKS 上で動かす場合に生じた課題に対応するために生まれました。
Cluster Autoscaler では、 node group という概念が絶対的にあり、それを前提に スケーリングを行うような設計となっています。
こと、AWS に限定すると、node group の実態はASGであり、ASGはAWS EC2 の機能であって、Kubernetes のオブジェクトでもコントローラーでもありません。
そのために、EKS に最適化されたノードの管理を行うためには大量の node group を作成する必要が出てきました。
ノードの管理を ASG に丸投げするのではなく、Kubernetes ネイティブにやりたい
というような要望が AWS EKS の世界では出てきました。
Karpenter は、ノードのオートスケーラーのことでしょと思われているかもしれませんが、実際はただのノードのオートスケーラーではありません。
Kapenter はASGを介さずにインスタンスを直接管理します。
つまり、
Node Lifecycle 全般をASGに任せず、Kubrnetes の世界だけでやってしまうというものになっており、
実際はただのノードのオートスケーラーではなく、従来ASGに任せていたようなさまざまなノードライフサイクル管理に関わる機能を有しています。