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"
- "Node group entered a DEGRADED status"
解決策
Client error on launch (起動時のクライアントエラー)
このエラーは、カスタム起動テンプレートで暗号化された Amazon Elastic Block Store (Amazon EBS) ボリュームを誤った権限で使用した場合に発生します。暗号化ステータスと AWS Identity and Access Management (AWS IAM) の権限またはポリシーを確認するには、以下のタスクを実行します。
Launch template not found (起動テンプレートの欠落)
このエラーは、Amazon EKS ではなくノードの Auto Scaling グループを使用し、カスタム起動テンプレートのバージョンを手動で変更した場合に発生します。この問題を解決するには、Amazon EKS を使用して起動テンプレートのバージョンを更新する必要があります。
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
マネージドノードグループの Amazon Elastic Compute Cloud (Amazon EC2) 起動テンプレートを更新するには、次の手順を実行します。
- Amazon EKS コンソールを開きます。
- ナビゲーションペインで [クラスター] を選択します。
- [クラスター名] から、更新するノードグループを含むクラスターを選択します。
- [コンピューティング] タブを選択します。
- [ノードグループ] から目的のノードを選択し、[バージョンの変更] を選択します。
注: このオプションは、起動テンプレートの新しいリビジョンが利用可能な場合にのみ表示されます。オプションが表示されない場合は、AWS CLI コマンド aws eks update-nodegroup-version を実行し、ノードグループの起動テンプレートバージョンを変更します。
- ノードグループに適用するバージョンを選択します。アップデートストラテジーが [ローリングアップデート] に設定されていることを確認します。
- [更新] を選択します。
このエラーは、カスタム起動テンプレートを使用してノードグループを作成する際、参照テンプレートが削除された場合にも発生します。カスタム起動テンプレートを使用する場合、Amazon EKS はそのテンプレートを複製します。元のテンプレートを削除した場合は、ノードグループを再作成する必要があります。
ノードグループを再作成するには、次の手順を実行します。
-
新しいノードグループを起動します。
-
次のコマンドを実行して、すべてのノードが正常で、準備完了状態であり、クラスターに参加していることを確認します。
$ kubectl get nodes
-
ワーカーノードをドレインします。
-
元のノードグループを削除します。
Node group enters a DEGRADED status (ノードグループが DEGRADED 状態)
Amazon EKS が起動テンプレートを作成した後、ノードグループが 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 起動テンプレートバージョンが、Amazon EKS が作成するバージョンと一致しない場合に発生します。カスタム起動テンプレートを使用する、既存のノードグループ以外を直接更新することはできません。このエラーを解決するには、目標とする設定を含む起動テンプレートとバージョンを作成します。次に、起動テンプレートを使用してノードグループを作成します。新しいノードグループがカスタムテンプレートから起動する場合は、テンプレートの新しいバージョンを作成します。このテンプレートを使用すると、ノードグループが DEGRADED ステータスに移行することを避けられます。
関連情報
起動テンプレートを使用してマネージドノードをカスタマイズする
起動テンプレート設定の基本