Amazon Elastic Kubernetes サービス (Amazon EKS) のコントロールプレーンがメンテナンスオペレーションを実行したかどうかを知りたいと考えています。
簡単な説明
Amazon EKS は、クラスターが非決定的になったり回復不能になったりしないように、高可用性を実現するために API サーバーを継続的に更新します。ただし、API サーバーインスタンスの IP アドレスが変更されると、API サーバークライアントが影響を受ける可能性があります。ここでのベストプラクティスは、API サーバークライアントで再接続を管理することです。詳細については、「Update existing cluster to new Kubernetes version」を参照してください。
Amazon EKS は、指定されたサブネットに新しいクロスAWSアカウントエラスティックネットワークインターフェイスを生成し、以前のエラスティックネットワークインターフェイスを削除します。この操作により、クラスターエンドポイント IP アドレスの変更が有効になります。環境が要件を満たしていない場合、クロスアカウントのエラスティック ネットワーク インターフェイスの作成は失敗します。エラスティックネットワークインターフェイスの作成に失敗すると、次の問題が発生する可能性があります。
- ワーカーノードとコントロールプレーン間の通信。
- プライベート Amazon EKS クラスターエンドポイントへのアクセスに関する問題。
- kubectl exec コマンドと kubectl logs コマンドには長い時間がかかります。
- EKS 接続遅延。
Amazon EKS コントロールプレーンでメンテナンスが実行されたことを確認するには、ネットワークインターフェイスで作成日を確認します。または、CloudTrail の CreateNetworkInterface イベント履歴でイベント時間を確認します。
解決策
Amazon EKS のコントロールプレーンが更新されたかどうかを確認するには、次の解決タスクのいずれかを実行します。
EKS クラスターのクロスアカウントエラスティックネットワークインターフェースを確認する
クラスターのネットワークインターフェースを確認するには、次のコマンドを実行します。特定のクラスターのネットワークインターフェイスを確認するには、Amazon EKS* を Amazon EKS example-cluster-name に置き換えてください。
aws ec2 describe-network-interfaces --filter Name=description,Values="Amazon EKS*"
aws ec2 describe-network-interfaces --filter Name=description,Values="Amazon EKS example-cluster-name"
または、
Amazon EKS がコンソールで更新されたかどうかを確認するには、次の手順を実行します。
- Amazon EKS コンソールを開きます。
- 検索バーに Amazon EKS のクラスター名を入力します。
- インターフェースタイプが エラスティックネットワークインターフェイス、説明が Amazon EKS サンプルクラスター名のネットワークインターフェイスを選択します。
- ネットワークインターフェイスの作成日をチェックして、EKS にパッチが適用されていることを確認します。
クラスターに 2 つ以上のエラスティックネットワークインターフェイスがあることを確認します。エラスティックネットワークインターフェイスの作成日がクラスターの作成日またはユーザー更新日よりも遅い場合、クラスターは Amazon EKS によって更新されます。
イベント履歴を確認する
クラスターのクロスアカウントエラスティックネットワークインターフェイスの変更をチェックするには、CreateNetworkInterface の AWS CloudTrail イベント履歴を確認してください。次の手順を実行します。
- CloudTrail コンソールを開きます。
- ナビゲーションペインで [イベント履歴] を選択します。
- [ルックアップ属性] で [イベント名]を選択します。「CreateNetworkInterface」と入力します。
- ユーザー名が Amazon EKS であるエントリのイベント時間を確認します。
**注:**CloudTrail は過去 90 日間のイベントレコードを提供します。
クラスターに 2 つ以上のエラスティックネットワークインターフェイスがあることを確認します。エラスティックネットワークインターフェイスの作成日が、クラスターの作成日またはユーザー更新日よりも遅い場合、クラスターは Amazon EKS によって更新されています。
新しいクロスアカウントエラスティックネットワークインターフェイスの作成を再試行する
エラスティックネットワークインターフェイスが 2 つ未満の場合は、CloudTrail の ** CreateNetworkInterface ** イベントで障害が発生していないか確認してください。
新しいクロスアカウントのエラスティックネットワークインターフェイスが失敗した理由は、CloudTrail ログで確認できます。このエラーを解決するには、クラスターのリソースが VPC 要件を満たしていることを確認します。
このエラーの一般的な理由は次のとおりです。
**サブネットとセキュリティグループ **
設定したサブネットとセキュリティグループがまだ存在することを確認してください。サブネットとセキュリティグループが存在しない場合は、次のコマンドを実行して、同じ VPC 内の新しいリソースでクラスターを更新します。
aws eks update-cluster-config --name <your-cluster> \
--resources-vpc-config subnetIds=<subnet id>,securityGroupIds=<security id>
**サブネットの IP アドレスが不十分 **
このエラーを解決するには、クラスターサブネットで少なくとも 2 つの IP アドレスを解放するか、別のサブネットをクラスターに関連付けます。
関連情報
Amazon EKS クラスターでアップグレードが失敗した場合のトラブルシューティング方法を教えてください。
Amazon EKS ワーカーノード向けのクラスターネットワークに関するわかりやすい説明