ワーカーノードの欠落
背景
株式会社XYZは、Kubernetesバージョン1.30を実行するEKSクラスターを使用して、us-west-2リージョンで新しいeコマースプラットフォームを立ち上げようとしています。セキュリティレビューの際、クラスターのセキュリティ態勢、特にノードグループのボリューム暗号化とAMIカスタマイズに関するいくつかのギャップが特定されました。
セキュリティチームは以下の具体的な要件を提示しました:
- ノードグループボリュームの暗号化の有効化
- ベストプラクティスに基づくネットワーク設定
- EKS最適化AMIの使用
- Kubernetesの監査の有効化
Kubernetes経験はあるものの、EKSに関しては新人のエンジニアSamは、これらの要件を実装するためにnew_nodegroup_1という名前の新しいマネージドノードグループを作成しました。しかし、ノードグループの作成は成功したように見えるものの、新しいノードがクラスターに参加していません。EKSクラスターのステータス、ノードグループの構成、Kubernetesイベントの初期チェックでは、明らかな問題は見つかりませんでした。
ステップ1:ノードステータスの確認
まず、Samの観測した欠落しているノードについて確認しましょう:
No resources found
これによりSamの観測が確認できました - 新しいノードグループ(new_nodegroup_1)からのノードは存在していません。
ステップ2:マネージドノードグループのステータス確認
マネージドノードグループはノードの作成を担当しているため、ノードグループの詳細を調べてみましょう。確認すべき重要な側面:
- ノードグループの存在
- ステータスと健全性
- 希望するサイズ
EKSコンソールでもこの情報を確認できます:
EKSクラスターコンピューティングタブを開くステップ3:ノードグループの健全性ステータスの分析
ノードグループは最終的に「DEGRADED」(劣化)状態に移行するはずです。詳細なステータスを調べてみましょう:
ワーカーノードワークショップ環境が10分以内にデプロイされた場合、ノードグループが「ACTIVE」状態で表示される可能性があります。その場合は、以下の出力を参考にしてください。ノードグルー プはデプロイから10分以内に「DEGRADED」に移行するはずです。ステップ4に進んでAutoScalingグループを直接確認することもできます。
{ "nodegroup": {"nodegroupName": "new_nodegroup_1", <<<---
"nodegroupArn": "arn:aws:eks:us-west-2:1234567890:nodegroup/eks-workshop/new_nodegroup_1/abcd1234-1234-abcd-1234-1234abcd1234",
"clusterName": "eks-workshop",
...
"status": "DEGRADED", <<<---
"capacityType": "ON_DEMAND",
"scalingConfig": {"minSize": 0,
"maxSize": 1,
"desiredSize": 1 <<<---
},
...
"resources": {"autoScalingGroups": [
{"name": "eks-new_nodegroup_1-abcd1234-1234-abcd-1234-1234abcd1234"
}
]
},
"health": { <<<---"issues": [
{"code": "AsgInstanceLaunchFailures",
"message": "Instance became unhealthy while waiting for instance to be in InService state. Termination Reason: Client.InvalidKMSKey.InvalidState: The KMS key provided is in an incorrect state",
"resourceIds": [
"eks-new_nodegroup_1-abcd1234-1234-abcd-1234-1234abcd1234"
]
}
]
}
...
}
健全性ステータスはインスタンスの起動を妨げるKMSキーの問題を示しています。これはSamがボリューム暗号化を実装しようとした試みと一致しています。