Amazon Elastic Kubernetes Service (Amazon EKS) クラスターで EKS Pod Identity を使おうとしたところ、「Unable to fetch credentials」というエラーが発生します。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
Amazon EKS クラスターで EKS Pod Identity を有効化する際に、次のいずれかのエラーが発生する場合があります。
- 「Error when retrieving credentials from container-role: Error retrieving metadata: Received error when attempting to retrieve container metadata: Read timeout on endpoint URL: http://169.254.170.23/v1/credentials」 コンテナメタデータの取得時にエラーが発生しました。エンドポイント URL の読み取りタイムアウト:http://169.254.170.23/v1/credentials)
- 「Unable to fetch credentials: error getting credentials to cache: unable to fetch credentials from EKS Auth: operation error EKS Auth」 (認証情報をキャッシュに取得中にエラーが発生しました。EKS Auth から認証情報を取得できません)
これらのエラーをトラブルシューティングするには、次の手順を実行します。
-
eks-pod-identity-agent ポッドからログを取得するには、次のコマンドを実行します。
kubectl logs -f eks-pod-identity-agent -n kube-system
-
プライベートクラスターを使用している場合は、AWS PrivateLink で eks-auth エンドポイントを許可していることを確認してください。
-
ロール設定を確認するには、アプリケーションポッドのシェルを開き、次の AWS CLI コマンド get-caller-identity を実行します。
aws sts get-caller-identity
-
ファイアウォールが eks-auth エンドポイントをブロックしていないことを確認します。
-
プロキシ構成を使用する場合は、次のコマンドを実行し、EKS Pod Identity エージェント https_proxy が設定されていることを確認します。
kubectl set env ds/eks-pod-identity-agent https_proxy="PROXY-URL" -n kube-system