このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
EKS 機能をトラブルシューティングする
このトピックでは、機能のヘルスチェック、よくある問題、機能固有のトラブルシューティングへのリンクなど、EKS 機能に関する一般的なトラブルシューティングのガイダンスを示します。
注記
EKS の機能は完全に管理され、クラスターの外部で実行されます。コントローラーのログや名前空間にアクセスすることはできません。トラブルシューティングでは、機能のヘルス、リソースのステータス、設定に焦点を当てています。
一般的なトラブルシューティングのアプローチ
EKS 機能をトラブルシューティングするときは、次の一般的なアプローチに従ってください。
-
機能のヘルスを確認する:
aws eks describe-capabilityを使用して、機能のステータスとヘルスに関する問題を表示します。 -
リソースのステータスを確認する: 作成した Kubernetes リソース (CRD) のステータス条件とイベントを確認します。
-
IAM アクセス許可を確認する: 機能ロールに必要なアクセス許可があることを確認します。
-
設定を確認する: 機能固有の設定が適切であることを確認します。
機能のヘルスを確認する
すべての EKS 機能が、EKS コンソールと describe-capability API を介してヘルス情報を提供します。
コンソール:
-
https://console.aws.amazon.com/eks/home#/clusters で Amazon EKS コンソールを開きます。
-
クラスター名を選択します。
-
[オブザーバビリティ] タブを選択します。
-
[クラスターを監視する] を選択します。
-
[機能] タブを選択すると、すべての機能のヘルスとステータスが表示されます。
[機能] タブには以下が表示されます。
-
機能の名前とタイプ
-
現在のステータス
-
ヘルスの問題とその説明
AWS CLI:
aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-capability-name
レスポンスは以下のとおりです。
-
status: 機能の現在の状態 (
CREATING、ACTIVE、UPDATING、DELETING、CREATE_FAILED、UPDATE_FAILED) -
health: 機能が検出した問題などのヘルス情報
機能でよく見られるステータス
CREATING: 機能のセットアップ中です。
ACTIVE: 機能の実行中ですぐに使用できるようになります。リソースが想定どおりに動作しない場合は、リソースのステータスと IAM アクセス許可を確認してください。
UPDATING: 設定変更の適用中です。ステータスが ACTIVE に戻るまで待ちます。
CREATE_FAILED または UPDATE_FAILED: セットアップまたは更新でエラーが発生しました。詳細については、ヘルスに関するセクションを確認してください。一般的な原因:
-
IAM ロールの信頼ポリシーが正しくないか、見つかりません。
-
IAM ロールが存在しないか、アクセスできません。
-
クラスターアクセスに問題があります。
-
設定パラメータが無効です。
Kubernetes リソースのステータスを確認する
EKS 機能は、クラスターで Kubernetes カスタムリソース定義 (CRD) を作成および管理します。トラブルシューティングするときは、作成したリソースのステータスを確認してください。
# List resources of a specific type kubectl getresource-kind-A # Describe a specific resource to see conditions and events kubectl describeresource-kindresource-name-nnamespace# View resource status conditions kubectl getresource-kindresource-name-nnamespace-o jsonpath='{.status.conditions}' # View events related to the resource kubectl get events --field-selector involvedObject.name=resource-name-nnamespace
リソースのステータス条件では、以下の情報を確認できます。
-
リソースの準備ができているかどうか
-
何かエラーが発生しているか
-
現在の調整状態
IAM アクセス許可とクラスターアクセスを確認する
機能で発生する問題の多くは、IAM アクセス許可に問題があるか、クラスターアクセス設定が欠落していることに起因しています。機能ロールのアクセス許可とクラスターアクセスのエントリの両方を検証します。
IAM ロール許可をチェックする
必要なアクセス許可が機能ロールに付与されていることを確認します。
# List attached managed policies aws iam list-attached-role-policies --role-namemy-capability-role# List inline policies aws iam list-role-policies --role-namemy-capability-role# Get specific policy details aws iam get-role-policy --role-namemy-capability-role--policy-namepolicy-name# View the role's trust policy aws iam get-role --role-namemy-capability-role--query 'Role.AssumeRolePolicyDocument'
この信頼ポリシーは、capabilities.eks.amazonaws.com サービスプリンシパルを許可する必要があります。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
EKS アクセスエントリとアクセスポリシーを確認する
どの機能でも、動作しているクラスターで適切な EKS アクセスエントリとアクセスポリシーが必要です。
アクセスエントリが存在することを確認する:
aws eks list-access-entries \ --cluster-namemy-cluster\ --regionregion-code
リスト内で機能ロール ARN を探します。見つからない場合、機能はクラスターにアクセスできません。
エントリにアタッチされているアクセスポリシーを確認する:
aws eks list-associated-access-policies \ --cluster-namemy-cluster\ --principal-arnarn:aws:iam::111122223333:role/my-capability-role\ --regionregion-code
どの機能にも、適切なアクセスポリシーが必要です。
-
ACK: Kubernetes リソースを作成および管理するためのアクセス許可が必要です。
-
kro: Kubernetes リソースを作成および管理するためのアクセス許可が必要です。
-
Argo CD: Application を作成および管理するためのアクセス許可が必要です。また、マルチクラスターのデプロイには、リモートターゲットクラスターにアクセスエントリが必要です。
Argo CD によるマルチクラスターのデプロイの場合:
リモートクラスターにデプロイする場合は、ターゲットクラスターごとに機能ロールのアクセスエントリがあることを確認します。
# Check Access Entry on target cluster aws eks describe-access-entry \ --cluster-nametarget-cluster\ --principal-arnarn:aws:iam::111122223333:role/argocd-capability-role\ --regionregion-code
ターゲットクラスターにアクセスエントリがない場合、Argo CD はそのクラスターにアプリケーションをデプロイできません。設定の詳細については、「ターゲットクラスターを登録する」を参照してください。
機能に固有のトラブルシューティング
各機能タイプに固有の詳しいトラブルシューティングガイダンスについては、以下を参照してください。
-
ACK 機能に関する問題をトラブルシューティングする - ACK リソースの作成、IAM アクセス許可、クロスアカウントアクセスをトラブルシューティングします。
-
Argo CD 機能に関する問題をトラブルシューティングする - アプリケーション同期、リポジトリ認証、マルチクラスターデプロイをトラブルシューティングします。
-
kro 機能に関する問題をトラブルシューティングする - ResourceGraphDefinitions、CEL 式、RBAC アクセス許可をトラブルシューティングします。
すべての機能に共通する問題
CREATING 状態で機能が停止する
機能が想定よりも長く CREATING 状態のままである場合:
-
コンソール ([オブザーバビリティ] > [クラスターをモニタリング] > [機能] タブ) または AWS CLI を使用して、機能のヘルスをチェックして特定の問題がないか確認します。
aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-capability-name \ --query 'capability.health' -
IAM ロールが存在し、信頼ポリシーが適切であることを確認します。
-
クラスターがアクセス可能で正常であることを確認します。
-
機能のセットアップを阻害するようなクラスターレベルの問題がないか確認します。
リソースが作成または更新されない
機能が ACTIVE であるのにリソースが作成または更新されない場合:
-
リソースのステータスをチェックしてエラー条件を確認します。
-
特定の AWS サービス (ACK) またはリポジトリ (Argo CD) に対する IAM アクセス許可を検証します。
-
基礎となるリソース (kro) を作成するための RBAC アクセス許可を確認します。
-
リソース仕様をチェックして検証エラーがないか確認します。
機能のヘルスに問題がある
describe-capability がヘルスの問題を示している場合:
-
問題の説明を注意深く読みます。具体的な問題を示していることがよくあります。
-
根本原因 (IAM アクセス許可や設定エラーなど) に対処します。
-
問題が解決すると、機能は自動的に復旧します。
次のステップ
-
機能リソースの使用 - 機能リソースを管理する
-
ACK 機能に関する問題をトラブルシューティングする - ACK に固有のトラブルシューティングを行う
-
Argo CD 機能に関する問題をトラブルシューティングする - Argo CD に固有のトラブルシューティングを行う
-
kro 機能に関する問題をトラブルシューティングする - kro に固有のトラブルシューティングを行う
-
EKS 機能のセキュリティに関する考慮事項 - 機能のセキュリティ面のベストプラクティス