Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

kubectl と S3 を使用してマネージドノードのノードログを取得する

フォーカスモード
kubectl と S3 を使用してマネージドノードのノードログを取得する - アマゾン EKS

このページの改善にご協力ください

本ユーザーガイドの改善にご協力いただけませんか? すべてのページの右側のペインにある GitHub リンクで、このページの編集を選択してください。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。

このページの改善にご協力ください

本ユーザーガイドの改善にご協力いただけませんか? すべてのページの右側のペインにある GitHub リンクで、このページの編集を選択してください。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。

ノードモニタリングエージェントを備えた Amazon EKS マネージドノードのノードログを取得する方法について説明します。

前提条件

以下があることを確認します。

  • ノードモニタリングエージェントを備えた既存の Amazon EKS クラスター。詳細については、「ノードの自動修復を有効にし、ノードのヘルス問題を調査する」を参照してください。

  • クラスターと通信するようにインストールおよび設定された kubectl コマンドラインツール。

  • S3 バケットとオブジェクトを作成するのに十分なアクセス許可が付与された状態でインストールおよびログインした AWS CLI。

  • インストール済みの Python 3 最新バージョン

  • インストール済みの AWS SDK for Python 3、Boto 3。

ステップ 1: S3 バケットの宛先を作成する (任意)

ログを格納する S3 バケットがまだない場合は、作成します。次の AWS CLI コマンドを使用します。バケットのデフォルトは private アクセスコントロールリストです。bucket-name はユーザーが選択した一意のバケット名に置き換えます。

aws s3api create-bucket --bucket bucket-name

ステップ 2: HTTP Put の事前署名された S3 URL を作成する

Amazon EKS は、指定した URL に対して HTTP PUT オペレーションを実行してノードログを返します。このチュートリアルでは、事前署名された S3 HTTP PUT URL を生成します。

ログは gzip tarball として .tar.gz 拡張子で返されます。

注記

AWS API または SDK を使用して、EKS がログファイルをアップロードするための事前署名された S3 アップロード URL を作成する必要があります。AWS CLI を使用して事前署名された S3 アップロード URL を作成することはできません。

  1. ログを格納するバケット内の場所を決定します。例えば、キーとして 2024-11-12/logs1.tar.gz を使用できます。

  2. ファイル presign-upload.py に次の Python コードを保存します。<bucket-name><key> を置き換えます。キーは .tar.gz で終わる必要があります。

    import boto3; print(boto3.client('s3').generate_presigned_url( ClientMethod='put_object', Params={'Bucket': '<bucket-name>', 'Key': '<key>'}, ExpiresIn=1000 ))
  3. 次を使用してスクリプトを実行します

    python presign-upload.py
  4. URL 出力をメモします。この値は次のステップで http-put-destination として使用します。

詳細については、AWS Boto3 SDK for Python ドキュメントの「Generate a presigned URL to upload a file」を参照してください。

ステップ 3: NodeDiagnostic リソースを作成する

ログを収集するノードの名前を特定します。

リソースの名前としてノードの名前を使用する NodeDiagnostic マニフェストを作成し、HTTP PUT URL の宛先を指定します。

apiVersion: eks.amazonaws.com/v1alpha1 kind: NodeDiagnostic metadata: name: node-name spec: logCapture: destination: http-put-destination

マニフェストをクラスターに適用します。

kubectl apply -f nodediagnostic.yaml

NodeDiagnostic リソースを記述することで、コレクションのステータスを確認できます。

  • ステータスが Success または SuccessWithErrors の場合は、タスクが完了し、ログが指定された宛先にアップロードされたことを示します (SuccessWithErrors は、一部のログが欠落している可能性があることを示します)。

  • ステータスが Failure の場合は、アップロード URL が正しい形式であり、有効期限が切れていないことを確認してください。

kubectl describe nodediagnostics.eks.amazonaws.com/node-name

ステップ 4: S3 からログをダウンロードする

ログをダウンロードする前に約 1 分待ちます。そして、S3 CLI を使用してログをダウンロードします。

# Once NodeDiagnostic shows Success status, download the logs aws s3 cp s3://bucket-name/key ./node-logs.tar.gz

ステップ 5: NodeDiagnostic リソースをクリーンアップする

  • NodeDiagnostic リソースは自動的には削除されません。ログアーティファクトを取得したら、自分でクリーンアップする必要があります。

# Delete the NodeDiagnostic resource kubectl delete nodediagnostics.eks.amazonaws.com/node-name
プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.