スキップしてコンテンツを表示

Amazon EKS クラスターのマネージドノードグループのエラーを解決するにはどうすればよいですか?

所要時間2分
0

Amazon Elastic Kubernetes Service (Amazon EKS) クラスターのマネージドノードグループに問題があります。

簡単な説明

Amazon EKS クラスターのマネージドノードグループエラーの一般的な原因は次のとおりです。

  • DHCP オプションが正しくない: API サーバーにノードを登録するとエラーが表示されます
  • AWS Key Management Service (AWS KMS) のキー権限が見つからない: AWS KMS キーで暗号化された Amazon Elastic Block Store (Amazon EBS) ボリュームを持つオートスケーリンググループで Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを起動すると、エラーが表示されます
  • 起動テンプレートが正しくありません: EC2 起動テンプレートが Amazon EKS が作成したバージョンと一致しないため、マネージドノードグループの状態は低下しています

解決方法

DHCP オプションを確認してください

カスタム DNS で間違った DHCP オプションを使用すると、次のエラーが表示されることがあります。

「ノード「ip-x-x-x-x.eu-region.compute.internal」は無効です:metadata.labels: 値が無効です」

ホスト名が 63 文字以下であることを確認してください。DHCP オプションを確認するには、「Amazon VPC の DHCP オプションセット」を参照してください。AWS リージョンと一致するホスト名を指定します。us-east-1 にある Amazon が提供する DNS サーバーの場合は、ec2.internal を指定します。他のリージョンにある Amazon が提供する DNS サーバーの場合は、region.compute.internal を指定します。

us-east-1 の DHCP オプションセットの例:

domain-name: ec2.internal
**domain-name-servers:**AmazonProvidedDNS

他のリージョンの DHCP オプションセットの例:

domain-name: region.compute.internal
**domain-name-servers:**AmazonProvidedDNS

カスタム DNS の DHCP オプションセットの例:

domain-name: custom DNS name
domain-name-servers: domain name server

**注:**region をリージョンに、custom DNS name をお使いの DNS 名に、domain name serverをお使いのドメインネームサーバーに置き換えます。

詳細については、「DHCP オプションセットの概念」を参照してください。DHCP オプションセットが、複数のオペレーティングシステムを搭載したインスタンスを持つ VPC に関連付けられている場合は、ドメイン名を 1 つだけ指定するのがベストプラクティスです。

EBS ボリューム暗号化のキーポリシーを設定する

Auto Scaling グループのサービスロールにアクセス権がない場合、次のエラーが表示されることがあります。

AccessDeniedException: User: arn:aws:sts::xxxxxxxxxxxx:assumed-role/AWSServiceRoleForAutoScaling/AutoScaling is not authorized to perform: kms:GenerateDataKeyWithoutPlaintext on resource: ARN of KMS key"

マネージドノードが AWS KMS キーで暗号化された Amazon EBS ボリュームを使用する場合、Auto Scaling グループのサービスロールはそのボリュームにアクセスできません。

Auto Scaling グループのサービスロールには、暗号化された EBS ボリュームを操作するための以下の権限が必要です。

  • kms:Encrypt
  • kms:Decrypt
  • kms:ReEncrypt*
  • kms:GenerateDataKey*
  • kms:DescribeKey
  • kms:CreateGrant

正しい KMS キーポリシーを設定するには、「暗号化されたボリュームで使用するために必要な AWS KMS キーポリシー」を参照してください。暗号化された EBS ボリュームをより多くの IAM ロールで使用できるようにするために、キーポリシーを変更することができます。詳細については、「KMS キーの使用をキーユーザーに許可する」を参照してください。KMS キーアクセス管理の詳細については、「AWS キー管理サービス」を参照してください。

起動テンプレートのバージョンを更新する

**注:**マネージドノードグループから EC2 起動テンプレートを更新する前に、新しいバージョンを作成します。詳細については、「定義したパラメータを使用して新しい起動テンプレートを作成する」を参照してください。

Auto Scaling グループから直接起動テンプレートを手動で更新すると、次のエラーが表示されることがあります。

「Ec2LaunchTemplateVersionMismatch」

マネージドノードグループから EC2 起動テンプレートを更新するには、次の手順を実行します。

  1. EKS コンソールを開きます。
  2. 更新するノードグループを含むクラスターを選択します。
  3. [設定] タブを選択し、[コンピューティング] タブを選択します。
  4. 起動テンプレートのノードグループページで、[バージョンの変更] を選択します。
  5. ノードグループに適用するバージョンを選択します。アップデートストラテジーが [ローリングアップデート] に設定されていることを確認します。
  6. [更新] を選択します。

**注:**ノードグループを新しいバージョンの EC2 起動テンプレートで更新するのがベストプラクティスです。

カスタム起動テンプレートを使用していないのに Ec2LaunchTemplateVersionMismatch エラーが表示される場合は、起動テンプレートのバージョンを確認してください。ワーカーノードと EKS ノードグループが同じ起動テンプレートバージョンを使用していない可能性があります。この問題を解決するには、Auto Scaling コンソールに移動して EKS が作成したバージョンに戻してください。詳細については、「マネージドノードグループのエラー」を参照してください。マネージドノードグループ内の障害ノードに関するその他の解決策については、「ワーカーノードを Amazon EKS クラスターに参加させるにはどうすればよいですか?」を参照してください。

AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ