Amazon EKS ノードグループのステータスが Degraded になった理由を知りたいです。

所要時間3分
0

Amazon Elastic Kubernetes Service (Amazon EKS) クラスター内のマネージドノードグループが Degraded ステータスになっています。

解決策

NodegroupHealth で表示されたエラーメッセージに応じて、次のトラブルシューティング手順を実行します。

AccessDenied

AccessDenied エラーは、Amazon EKS またはいずれかのマネージドノードが Kubernetes クラスター API サーバーで認証または承認できない場合に発生します。次のようなエラーが表示されます。

「Your worker nodes do not have access to the cluster.Verify if the node instance role is present and correctly configured in the aws-auth ConfigMap」 (ノードインスタンスロールが aws-auth ConfigMap に存在し、正しく設定されているかどうかを確認してください)

この問題をトラブルシューティングするには、次のコマンドを実行し、aws-auth configmap でノードインスタンスロールのアクセス許可が正しく設定されていることを確認します。

kubectl get configmap aws-auth -n kube-system -o yaml

または、ノードロールをアクセスエントリに正しくマッピングしたことを確認します。

ワーカーノードインスタンスのロールが存在し、正しく設定されている必要があります。ノードのロールは、system:bootstrappers または system:nodes のみにマッピングする必要があります。ノードロールを system:masters グループにマッピングすることはおすすめしません。

マネージドノードグループに操作を行うロールに、アクセス許可 eks:node-manager ClusterRole または ClusterRoleBinding がない場合にも AccessDenied エラーが発生します。この問題をトラブルシューティングするには、ロールのアクセス許可を更新します。

プライベート Windows Amazon マシンイメージ (AMI) を使用してマネージドノードグループを起動した場合、Not authorized for images というエラーメッセージが表示されることがあります。AWS は新しい Windows AMI の起動時に、4 か月前よりも古いすべての AMI をプライベートに設定します。この問題のトラブルシューティングについては、「Not authorized for images」を参照してください。

AmiIdNotFound

AmiIdNotFound エラーは、Amazon EKS が起動テンプレートに関連付けられた AMI ID を見つけられない場合に発生します。次のようなエラーが表示されます。

「AmiIdNotFound: The ami id '[ami-0cxx]' does not exist」

この問題をトラブルシューティングするには、カスタム起動テンプレートに追加した AMI ID が存在し、AWS アカウントと共有されていることを確認してください。

AutoScalingGroupNotFound

AutoScalingGroupNotFound エラーは、Amazon EKS がマネージドノードグループに関連付けられた Amazon Elastic Compute Cloud (EC2) Auto Scaling グループグループを見つけられない場合に発生します。次のようなエラーが表示されます。

「AutoScalingGroupNotFound - The Amazon AutoScalingGroup ASG Name was not found」

この問題をトラブルシューティングするには、マネージドノードグループに関連付けられた EC2 Auto Scaling グループを削除していないことを確認してください。EC2 Auto Scaling グループを意図せず削除してしまった場合は、同じ名前の EC2 Auto Scaling グループを作成してください。数分待ってから、ノードグループが Active 状態に戻っているかどうかを確認します。

ClusterUnreachable

ClusterUnreachable エラーは、Amazon EKS またはマネージドノードが Kubernetes クラスター API サーバーと通信できない場合に発生します。次のようなエラーが表示されます。

「Ec2SecurityGroupNotFound You must use a valid fully-formed launch template.The security group 'sg-09fxx' does not exist in VPC 'vpc-0a8cxx'」 (有効かつ完全な形式の起動テンプレートを使用する必要があります)

このエラーは通常、ネットワークが中断したか、API サーバーがリクエストを送信する際タイムアウトになった場合に発生します。このエラーは、etcd データベースサイズのクォータである 8 GB を超えた場合にも発生します。この問題のトラブルシューティング方法については、「Amazon EKS クラスター上の etcd データベースサイズを管理する」を参照してください。さらに、kube-proxyAmazon Virtual Private Cloud (Amazon VPC) CNICoreDNS などのコアアドオンが最新バージョンを使用しており、最新の状態であることを確認してください。

AutoScalingGroupInvalidConfiguration

AutoScalingGroupInvalidConfiguration エラーは、マネージドノードグループの EC2 Auto Scaling グループの設定が誤っている場合に発生します。次のようなエラーが表示されます。

「AutoScalingGroupInvalidConfiguration: The Amazon AutoScalingGroup ASG Name has subnets ([Incorrect Subnet ID 1, Incorrect Subnet ID 2, Incorrect Subnet ID 3]) which is not expected by Amazon EKS.Expected subnets : ([Correct Subnet ID 1, Correct Subnet ID 2, Correct Subnet ID 3])」

この問題をトラブルシューティングするには、EC2 Auto Scaling グループで行われた変更を特定して削除します。関連するサブネットが変更されていないことを確認してください。ノードグループに関連付けられた EC2 Auto Scaling を更新し、エラーメッセージに表示されたサブネットを使用するようにします。

マネージドノードグループに関連付けた EC2 Auto Scaling グループは、手動で更新しないことをおすすめします。手動による変更は、以前に行った手動の変更を元に戻す場合のみ行ってください。

Ec2SecurityGroupNotFound

Ec2SecurityGroupNotFound エラーは、Amazon EKS がクラスターのセキュリティグループを見つけられない場合に発生します。次のようなエラーが表示されます。

「Ec2SecurityGroupNotFound The Amazon EC2 Security Group sg-04f3xx for node group-Name was not found」

このエラーメッセージが表示された場合、Degraded 状態であるマネージドノードグループを使用できなくなっています。代わりに、新しいノードグループを起動する必要があります。次に、過去のノードグループをドレインして削除します。ノードグループをドレインする方法の詳細については、Kubernetes のウェブサイトで「ノードを安全にドレインする」を参照してください。

Ec2LaunchTemplateNotFound

Ec2LaunchTemplateNotFound エラーは、マネージドノードグループの Amazon Elastic Compute Cloud (Amazon EC2) 起動テンプレートが Amazon EKS が作成したバージョンと一致しない場合に発生します。次のようなエラーが表示されます。

「The Amazon EC2 Launch Template lt-0cdac3xxf version number was not found」

Amazon EKS は、基盤となるマネージド EC2 Auto Scaling グループに関連付けられているマネージド起動テンプレートを使用してマネージドグループをデプロイします。

起動テンプレートを意図せず削除してしまった場合は、新しいノードグループを起動することをおすすめします。次に、過去のノードグループをドレインして削除します。ノードグループをドレインする方法の詳細については、Kubernetes のウェブサイトで「ノードを安全にドレインする」を参照してください。

マネージドノードグループに関連付けた EC2 Auto Scaling グループは、手動で更新しないことをおすすめします。手動による変更は、以前に行った手動の変更を元に戻す場合のみ行ってください。

Ec2LaunchTemplateVersionMismatch

Ec2LaunchTemplateVersionMismatch エラーは、マネージドノードグループの EC2 Auto Scaling グループ起動テンプレートのバージョンが Amazon EKS が作成したバージョンと一致しない場合に発生します。次のようなエラーが表示されます。

「The Amazon EC2 Launch Template : lt-0cdacxx has a new version (number) associated with your Autoscaling group, which is not managed by Amazon EKS.Expected Launch Template version : (number) lt-0cdac39f3axx」

Amazon EKS は常に、マネージド起動テンプレートを使用してマネージドノードグループをデプロイします。起動テンプレートを指定しない場合、Amazon EKS はアカウントのデフォルト値を使用して自動的に起動テンプレートを作成します。自動生成されたテンプレートは、変更しないことをおすすめします。なお、カスタム起動テンプレートを使用していない既存のノードグループは、直接更新できません。代わりに、カスタム起動テンプレートを使用して新しいノードグループを作成する必要があります。

カスタム起動テンプレートでの Ec2LaunchTemplateVersionMismatch エラーを解決するには、起動テンプレートのバージョンを、エラーメッセージに表示された、想定される起動テンプレートバージョンに更新します。

Amazon EKS ノードグループ用の起動テンプレートで許可されるアクションについては、「起動テンプレート設定の基本事項」を参照してください。

AsgInstanceLaunchFailures

AsgInstanceLaunchFailures エラーは、EC2 Auto Scaling グループがインスタンスを起動できない場合に発生します。次のようなエラーが表示されます。

「AsgInstanceLaunchFailures Could not launch Spot Instances.UnfulfillableCapacity - Unable to fulfill capacity due to your request configuration.Please adjust your request and try again.Launching EC2 instance failed」 (リクエストの設定が原因で、キャパシティを満たすことができません。リクエストを調整した後、再試行してください)

このエラーは通常、リクエストしたインスタンスタイプには十分なスポットインスタンス容量がない場合に発生します。容量を増やすには、複数のスポットインスタンスプールのインスタンスタイプとファミリーを組み合わせて使用することをおすすめします。詳細については、「Amazon EKS マネージドノードグループを使用してスポットインスタンスを起動し、トラブルシューティングする方法を教えてください」を参照してください。

InsufficientFreeAddresses

InsufficientFreeAddresses エラーは、マネージドノードグループに関連付けられているサブネットには、新しいノード用に使用可能な十分な数の IP アドレスがない場合に発生します。次のようなエラーが表示されます。

「InsufficientFreeAddresses - Amazon AutoScaling was unable to launch instances because there are not enough free addresses in the subnet associated with your AutoScaling group(s)」 (AutoScaling グループに関連付けられたサブネットに十分な空きアドレスがないため、Amazon AutoScaling はインスタンスを起動できませんでした)

この問題を解決するには、マネージドノードグループに関連付けられているサブネットに十分な IP アドレス数を確保します。詳細については、「IP アドレスの使用方法を最適化する」を参照してください。

IamInstanceProfileNotFound または IamNodeRoleNotFound

IamInstanceProfileNotFound エラーまたは IamNodeRoleNotFound エラーは、マネージドノードグループに関連付けられた AWS Identity and Access Management (IAM) ロールまたはプロファイルを削除すると発生します。この問題を解決するには、削除したロールまたはプロファイルと同じ名前と設定で新しい IAM ロールまたはプロファイルを作成します。

AWS公式
AWS公式更新しました 1ヶ月前
コメントはありません

関連するコンテンツ