既存のEKSクラスタにKarpenterを入れて、ノードを勝手に増減させる
EKSを運用していると、必ずここで悩みます。ノードを多めに用意すれば安心ですが、使っていない時間の料金が積み上がります。かといって減らすと、Podがスケジュールできずに詰まります。この「多すぎ」と「足りない」の間を自動で埋めるのが Karpenter です。AWSが公開しているオープンソースのオートスケーラで、必要になった瞬間に必要な分だけEC2を起動し、要らなくなったら削除します。この記事は、すでに稼働しているEKSクラスタに後から Karpenter を追加した際の作業メモです。■ 導入すると何が変わるかやることは2つだけです。・Podがスケジュールできない状態になったら、ノードを新しく起動する・そのノードが空になったら、自動で削除するシンプルですが、この2つが自動で回るかどうかで、月末の請求額はかなり変わります。■ 事前に用意するもの以下の4つを先に入れておきます。どれか欠けると途中で止まります。・AWS CLI … AWSの操作全般・kubectl … Kubernetesの操作・eksctl … EKS専用のCLI・helm … Kubernetesのパッケージ管理Karpenter は自分でEC2を起動するため、AWS側の権限が必要になります。その権限の渡し方が IRSA、正式には IAM Roles for Service Accounts という仕組みです。ざっくり言うと、KubernetesのサービスアカウントにIAMロールを紐づけて、アクセスキーを書かずに権限を渡す方式です。認証情報をファイルに直書きしなくて済むので、これを使います。■ 手順
0