0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EKSのNodeが突然消えた時の原因調査と監視対策メモ

Last updated at Posted at 2025-04-21

EKSのノードが突然消えたときの原因調査と監視対策メモ

本番環境でEKSを運用していると、
「Auto Scaling GroupにはEC2が存在しているのに、kubectl get nodesに表示されない」
という現象に突如直面することがあります。

ここでは、その原因と、再発防止のための監視方法をまとめています。


現象の概要

  • kubectl get nodes の結果にノードが表示されない
  • kubectl get pods の出力で、Podが Pending のまま進まない
  • Auto Scaling Group (ASG) には正常な状態のEC2インスタンスが存在する

よくある原因と対処ミス

1. kubelet の起動失敗

  • 以下のログで原因を確認する:
    • /var/log/messages
    • /var/log/user-data.log
    • journalctl -u kubelet
  • 主な原因:
    • bootstrap.sh の実行失敗
    • ネットワークの不具合
    • TLS証明書エラーなど

2. IAM Role に必要な権限が不足

  • ノードのIAMロールに以下のポリシーが必要:
    • AmazonEKSWorkerNodePolicy
    • AmazonEKS_CNI_Policy
    • AmazonEC2ContainerRegistryReadOnly
  • これらが欠けていると、kubeletがEKS APIと通信できずノード登録に失敗

3. 古いノードの再起動による不一致

  • 以前クラスタから削除したノードと同じ名前でEC2が起動すると、
    EKS側では「すでに削除済みのノード」とみなされ、再登録されないことがある

実際に発生したときの対処法

  • 該当のEC2インスタンスをASGからデタッチして削除
  • ASGが新しいインスタンスを自動起動
  • 新しいノードがEKSに正常参加 → kubectl get nodes でReady確認

本番環境での予防策

☑ Auto Scaling GroupのminSizeを1以上に設定

  • 常に少なくとも1台のノードを維持するようにしておく

☑ Fargate profile を作成

  • ラベルやネームスペースでPodをFargateへ振り分けることで、ノード依存を軽減

☑ EC2に監視スクリプトを配置

  • 定期的にcurlkubectl get nodesを実行してクラスタの状態を確認

監視スクリプト例

サイトの疎通確認

#!/bin/bash
URL="https://your-service.example.com"
STATUS=$(curl -s -o /dev/null -w "%{http_code}" $URL)

if [ "$STATUS" -ne 200 ]; then
  echo "$(date): Site unreachable! HTTP $STATUS" >> /var/log/eks-site-health.log
fi

ノードのReady状態確認

#!/bin/bash
READY_NODES=$(kubectl get nodes --no-headers | grep -c " Ready")

if [ "$READY_NODES" -eq 0 ]; then
  echo "$(date): No ready nodes!!" >> /var/log/eks-nodes.log
fi

まとめ

  • EC2インスタンスが存在していても、EKSがそれを「ノード」として認識しているかどうかが重要
  • 「ASGにはインスタンスがあるのに、ノードとして見えない」という状況は、
    多くの場合 kubeletの起動失敗IAM設定ミス が原因
  • 発生したら該当インスタンスをASGから外してやり直すのが手っ取り早い
  • 監視スクリプトを導入して、異常をすぐに検知できるようにしておく

ちなみに、
なぜかノードグループからインスタンスが勝手に外れることがある理由は、まだよくわかっていません……。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?