Member-only story
AWS EKS クラスタをより良くする 5 つの Helm チャート(後半)
EKSクラスタをデプロイした後、次に何をすべきかを考えていますか?ここでは、いくつかのトラックを紹介します。長い記事なので、前半と後半の2つに分けて投稿いたします。今回は後半です。
3. AWS Node Termination Handler
クラスタのノードとして使用するインスタンスの種類を選択することができます。 オンデマンドまたはスポットEC2インスタンスです。
- オンデマンドインスタンスでは、いつでもコンピュートを利用することができる。インスタンスが稼働している時間に対して料金を支払う。この価格モデルでは、いつでも退出できるため、最も多くの料金を支払うことになる。
- スポットインスタンスでは、このコミットメントが逆になる。EC2インスタンスの未使用の余分な計算を再利用できるので、メリットがある。スポットインスタンスを利用したい場合は、マーケットにオファーを出す。スポット市場の価格が入札価格を下回る場合、市場価格でインスタンスを取得する。入札した価格ではなく、低い方の市場価格を支払う。定期的に50–90%のコスト削減が可能である。
スポットインスタンスの最大のデメリットは、AWSがいつでもあなたのインスタンスを終了させることができるということです。AWSからインスタンスの提供するという絶対的な約束はありません。AWSユーザーがプールからオンデマンドのインスタンスを要求すると、割り当てシステムはプールから終了するSpotインスタンスのセットを選択します。このとき、Spotインスタンスを優雅に終了させるために、2分前に割り込み通知が送信されます。
AWS Node Termination Handler は、EC2インスタンスが利用できなくなるイベントに対して、Kubernetesのコントロールプレーンが適切に対応することを保証します。これらのイベントは、次のようなものがあります。 EC2メンテナンスイベント、EC2スポット中断、ASG Scale-In、ASG AZ Rebalance、APIやコンソールからのEC2終了などです。
終端処理を行わない場合、アプリケーションが正しく停止しないことがあります。この場合、完全に復旧するのに時間がかかり、アプリケーションがシャットダウンするノードに誤ってスケジュールされてしまう可能性があります。
AWS Node Termination Handlerは、2つの異なるモードで動作させることができます。 Instance Metadata Service (IMDS)またはQueue Processorです。
- Instance Metadata Service Monitorは、各ノード上で小さなPodを実行し、対応するノードの監視、ドレイン、紐付けを行う。