Kubectl を使用してすべてのポッドからログを取得する方法

Kubectl Wo Shi Yongshitesubetenopoddokararoguwo Qu Desuru Fang Fa



ポッドは、Kubernetes クラスターのより小さな単位であり、コア コンポーネントです。これらのポッドは、コンテナ化されたアプリケーションと共有ボリュームをカプセル化します。各ポッドは、ポッド内の複数のコンテナを実行および管理できます。ポッドはワーカー ノード内にデプロイされ、各ワーカー ノードは複数のポッドを管理できます。

場合によっては、ユーザーはエラー、失敗、不明な状態などのポッドの状態に直面することがあります。ポッドをデバッグしたり、ポッド内で実行されているアプリケーションを監視したりするには、ユーザーはポッドのログを表示する必要がある場合があります。

この投稿では次のことについて説明します。







単一ポッドのログを取得するにはどうすればよいですか?

ポッドは、Kubernetes クラスター内の別個のコンポーネントとして実行することも、Kubernetes デプロイメントによって管理および操作することもできます。デプロイメントの一部ではなく、別個のコンテナー化されたアプリケーションを実行しているポッドの場合、これらのポッドのログは個別にのみ確認できます。単一ポッドのログを確認するには、以下の手順に従います。



ステップ 1: ポッドを取得する

Kubernetes ポッドをリストするには、「 kubectl ポッドを取得する ” コマンド:



kubectl ポッドを取得する

以下の出力から、現在 5 つのポッドが実行されていることがわかります。 デモポッド 」が実行されており、コンテナーは 1 つだけあります。次の 3 つのポッドは「」の一部です。 html-デプロイメント ”、そして最後の” ウェブアプリ ポッドは 2 つのコンテナを実行しています。





ステップ 2: 単一ポッドのログを表示する

単一のポッドのログを取得するには、「 kubectl ログ <ポッド名> ' 指示:



kubectl ログのデモポッド

ポッドのログを端から取得するにはどうすればよいですか?

通常、ログの長さは長くなり、数百行が含まれる場合があります。場合によっては、ユーザーは特定のポイントから、または特定の数のログまでのポッドを表示したい場合があります。特定の数のログを末尾から表示するには、次のコマンドを使用します。

kubectl ログのデモポッド - しっぽ 2

ここで、「 -しっぽ 」オプションは、ログを最後から表示する場合に使用します。

ポッドの特定のコンテナのログを取得するにはどうすればよいですか?

Kubernetes の単一ポッドは、1 つまたは複数のコンテナーを実行できます。ポッドコンテナのログにアクセスするには、以下の手順に従ってください。

ステップ 1: ポッドを取得する

Kubernetes クラスターのポッドをリストするには、「 kubectl ポッドを取得する ' 指示:

kubectl ポッドを取得する

ここで、「 ウェブアプリ ” は複数のコンテナを実行しています。

注記: 場合によっては、ユーザーがポッド内で実行されているコンテナーの名前を覚えていない場合があります。ポッド内のコンテナの詳細を確認するには、「 kubectl 説明ポッド <ポッド名> ' 指示:

kubectl はポッド Web アプリを説明します

ステップ 2: コンテナのログを表示する

特定のポッドコンテナのログを取得するには、「kubectl logs -c 」コマンドを使用します。ここでは、コンテナ名を埋め込むために「-c」オプションが使用されています。

kubectl ログ Web アプリ -c 続き1

ポッドのすべてのコンテナのログを取得するにはどうすればよいですか?

Kubernetes ポッドのすべてのコンテナのログを表示するには、「 –すべてのコンテナ ” の値を” 真実 ' の中に ' kubectl ログ ' 指示:

kubectl ログ Web アプリ --すべてのコンテナ = 真実

Kubernetes でデプロイメントのログを取得するにはどうすればよいですか?

デプロイメントは、ポッド内でコンテナ化されたアプリケーションを実行するもう 1 つのコア Kubernetes リソースです。デプロイメントでは、レプリカを使用して実行中のポッドを管理および操作します。デプロイメントのログを表示するには、以下の手順に従います。

ステップ 1: すべての Kubernetes リソースを取得する

Kubernetes のすべてのリソースをリストするには、「kubectl get all」コマンドを使用します。

kubectl すべてを取得します

ここでは、「html-deployment」デプロイメントの下で 3 つのポッドが実行されていることがわかります。

ステップ 2: 導入のログを表示する

Kubernetes デプロイメントのログを取得するには、「 kubectl ログdeployment/<デプロイメント名> ' 指示:

kubectl ログのデプロイメント / html-デプロイメント

出力は、3 つのポッドが「html-deployment」で見つかり、現在最初のポッドのログのみを表示していることを示しています。

Kubernetes デプロイメントのすべてのポッドのログを取得するにはどうすればよいですか?

上記のケースでは、すべてのデプロイメント ポッドのログが表示されるわけではありません。 Kubernetes デプロイメントのすべてのポッドのログを表示するには、まずポッドのラベルを見つけます。次に、ポッド ラベルを指定してすべてのポッドのログにアクセスします。デモンストレーションするには、以下の手順を実行してください。

ステップ 1: ポッドを取得する

「kubectl get pods」コマンドの「–show-label」オプションを使用して、Kubernetes ポッドとそのラベルにアクセスします。

kubectl ポッドを取得する --show-label

ここで、以下の結果はポッドとラベルを示しています。これらのポッドは同じデプロイメントの下で実行されているため、同じラベルが付いています。

ステップ 2: すべてのデプロイメント ポッドのログを表示する

ここで、pods ラベルを使用して、デプロイメントのすべてのポッドのログを表示します。この目的には、「kubectl logs -l <​​label>」コマンドを使用します。

kubectl ログ -l アプリ =nginx --すべてのコンテナ

ポッドのログをライブビューで表示する

Kubernetes ポッドの実行中にログをライブビューするには、「kubectl logs」コマンドとともに「-f」オプションを使用します。

kubectl ログ -l アプリ =nginx -f

ここでは、「-l」オプションを使用してポッド ラベルを指定し、「-all-containers」オプションを使用すると、ポッドで実行されているすべてのコンテナのログが表示されます。

kubectl を使用してすべてのポッドのログを表示する方法は以上です。

結論

Kubernetes では、ユーザーはデプロイメント下で実行されているすべてのポッドのログを表示できます。単一ポッドのログを取得するには、「kubectl logs 」コマンドを使用します。特定のポッドコンテナのログを取得するには、「kubectl logs -c 」コマンドを使用します。 Kubernetes デプロイメントのすべてのポッドのログを表示するには、「kubectl logs -l <​​label-name>」コマンドを使用します。このブログでは、kubectl を使用してすべてのポッドからログを取得するテクニックを説明しました。