Node Join Failure
背景
企業XYZのeコマースプラットフォームは着実に成長しており、エンジニアリングチームは増加するワークロードを処理するためにEKSクラスターを拡張することを決定しました。チームはus-west-2リージョンに新しいサブネットを作成し、このサブネットの下に新しいマネージドノードグループをプロビジョニングする計画です。
経験豊富なDevOpsエンジニアであるSamは、この拡張計画の実行を任されています。Samはus-west-2リージョンに新しいCIDRブロックを持つ新しいVPCサブネットを作成することから始めます。目標は、新しいマネージドノードグループが既存のノードグループとは別に、この新しいサブネットでアプリケーションワークロードを実行することです。
新しいサブネットを作成した後、Samは EKSクラスターで新しいマネージドノードグループ new_nodegroup_2 を設定しました。ノードグループの作成プロセス中、Samは新しいノードがEKSクラスターに表示されず、クラスターに参加していないことに気付きます。
ステップ 1: ノードステータスの確認
- まず、ノードグループ new_nodegroup_2 からの新しいノードがクラスターに表示されているかどうかを確認しましょう:
~$kubectl get nodes --selector=eks.amazonaws.com/nodegroup=new_nodegroup_2
No resources found
ステップ 2: マネージドノードグループのステータス確認
EKSマネージドノードグループの設定を調査して、そのステータスと設定を確認しましょう:
~$aws eks describe-nodegroup --cluster-name $EKS_CLUSTER_NAME --nodegroup-name new_nodegroup_2 --query 'nodegroup.{nodegroupName:nodegroupName,nodegroupArn:nodegroupArn,clusterName:clusterName,status:status,capacityType:capacityType,scalingConfig:scalingConfig,health:{issues:health.issues}}'
出力:
{
"nodegroup": {
"nodegroupName": "new_nodegroup_2",
"nodegroupArn": "arn:aws:eks:us-west-2:1234567890:nodegroup/eks-workshop/new_nodegroup_2/abcd1234-1234-abcd-1234-1234abcd1234",
"clusterName": "eks-workshop",
...
"status": "ACTIVE",
"capacityType": "ON_DEMAND",
"scalingConfig": {
"minSize": 0,
"maxSize": 1,
"desiredSize": 1
},
...
"health": {
"issues": []
備考
あるいは、コンソールで同じことを確認することもできます。下のボタンをクリックしてEKSコンソー ルを開きましょう。
EKSクラスターコンピューティングタブを開く出力から重要な観察点:
- ノードグループのステータスは「ACTIVE」
- 希望する容量は1
- 健康上の問題は報告されていない
- スケーリング設定は正しい
ステップ 3: オートスケーリンググループの調査
インスタンス起動の状態を理解するために、ASGアクティビティをチェックしましょう:
3.1. ノードグループのオートスケーリンググループ名の特定
以下のコマンドを実行して、ノードグループのオートスケールグループ名をNEW_NODEGROUP_2_ASG_NAMEとして取得します。
~$NEW_NODEGROUP_2_ASG_NAME=$(aws eks describe-nodegroup --cluster-name $EKS_CLUSTER_NAME --nodegroup-name new_nodegroup_2 --query 'nodegroup.resources.autoScalingGroups[0].name' --output text)
~$echo $NEW_NODEGROUP_2_ASG_NAME