Amazon Elastic Kubernetes Service (Amazon EKS) クラスターのマネージドノードグループでカスタム起動テンプレートを使用するときのエラーをトラブルシューティングしたいと考えています。
簡単な説明
Amazon EKS クラスターのマネージドノードグループでカスタム起動テンプレートを使用すると、次のエラーのいずれかが表示される場合があります。
- 「Client.InternalError: Client error on launch (クライアント内部エラー: 起動時のクライアントエラー)」
- 「SourceEc2LaunchTemplateNotFound or The Amazon EC2 Launch Template lt-xxxxxxxxxxxxxxxxx version x was not found (ソース EC2 起動テンプレートが見つかりません、または Amazon EC2 起動テンプレート lt-xxxxxxxxxxxx バージョン x が見つかりませんでした)」
- 「Node group entered a DEGRADED status (ノードグループが DEGRADED ステータスになりました)」
解決策
Client.InternalError: Client error on launch (クライアント内部エラー: 起動時のクライアントエラー)
このエラーは、カスタム起動テンプレートで暗号化された Amazon Elastic Block Store (Amazon EBS) ボリュームを誤った権限で使用した場合に発生します。暗号化ステータスと AWS Identity and Access Management (AWS IAM) の権限またはポリシーを確認するには、以下のタスクを実行します。
SourceEc2LaunchTemplateNotFound or The Amazon EC2 Launch Template lt-xxxxxxxxxxxxxxxxx version x was not found (ソース EC2 起動テンプレートが見つかりません、または Amazon EC2 起動テンプレート lt-xxxxxxxxxxxx バージョン x が見つかりませんでした)
このエラーは、Amazon EKS ではなくノードの Auto Scaling グループを使用してカスタム起動テンプレートのバージョンを手動で変更した場合に発生します。この問題を解決するには、Amazon EKS を使用して起動テンプレートのバージョンを更新する必要があります。
マネージドノードグループから EC2 起動テンプレートを更新するには、次の手順を実行します。
- Amazon EKS コンソールを開きます。
- ナビゲーションペインで、[クラスター] を選択します。
- [クラスター名] で、更新するノードグループを含むクラスターを選択します。
- [コンピューティング] タブを選択します。
- ノードグループでは、ノードを選択し、[バージョンの変更] を選択します。
- ノードグループに適用するバージョンを選択します。アップデートストラテジーが [ローリングアップデート] に設定されていることを確認します。
- [更新] を選択します。
このエラーは、カスタム起動テンプレートを使用してノードグループを作成するときに、参照テンプレートを削除した場合にも発生します。カスタム起動テンプレートを使用してノードグループを作成すると、Amazon EKS はそのテンプレートを複製します。元のテンプレートを削除した場合は、ノードグループを再作成する必要があります。
ノードグループを再作成するには、次の手順を実行します。
-
新しいノードグループを起動します。
-
次のコマンドを実行して、すべてのノードが正常で、準備完了状態であり、クラスターに参加していることを確認します。
$ kubectl get nodes
-
ワーカーノードをドレインします。
-
元のノードグループを削除します。
新しい起動テンプレートを作成すると、ノードグループが DEGRADED ステータスになります。
ノードグループが DEGRADED ステータスになり、次のようなエラーが表示されることがあります。
「The Amazon EC2 Launch Template : lt-xxxxxxxxxxxxxxxxx has a new version associated with your Autoscaling group, which is not managed by Amazon EKS.Expected Launch Template version: x (Amazon EC2 起動テンプレート:lt-xxxxxxxxxxxxxxx には、お客様のオートスケーリンググループに関連する新しいバージョンがありますが、これは Amazon EKS では管理されていません。想定されている起動テンプレートのバージョン:x)」
このエラーは、マネージドノードグループの Amazon EC2 起動テンプレートのバージョンが Amazon EKS が作成するバージョンと一致しない場合に発生します。カスタム起動テンプレートを使用しない既存のノードグループを直接更新することはできません。このエラーを解決するには、希望の設定で起動テンプレートとバージョンを作成します。次に、起動テンプレートを使用してノードグループを作成します。新しいノードグループがカスタムテンプレートから起動される場合は、テンプレートの新しいバージョンを作成します。このテンプレートは、ノードグループを DEGRADED ステータスにしなくても使用できます。
関連情報
起動テンプレートによるマネージドノードのカスタマイズ
起動テンプレート設定の基本