Kubernetes Learning 第5章:kubectl の基本操作(get / describe / logs / exec)

Kubernetesクラスタを操作するための最重要ツールが kubectl です。
これは「Kubernetes APIサーバーと対話するためのコマンドラインツール」で、ほぼすべての操作がこれを通じて行えます。

ここでは、特に使用頻度が高く、トラブル対応でも役立つ基本4コマンドを紹介します。


🔍 1. kubectl get:リソースの一覧を確認する

Kubernetes上で動いているPodやService、Deploymentなどのリソースを一覧で確認できます。

kubectl get pods                # Pod一覧を表示(カレントnamespace)
kubectl get pods -n kube-system # kube-system namespace のPod一覧
kubectl get svc                 # Service一覧
kubectl get deployment          # Deployment一覧

目的:何が動いているのか、今の状態は正常かをざっくり見る

よく使うオプション

  • -A(全namespace)
  • -o wide(IPアドレスやノード情報など詳細付き)

🧾 2. kubectl describe:リソースの詳細情報を確認する

あるリソースの状態やイベント履歴、関連するオブジェクトを詳しく知りたいときに使います。

kubectl describe pod my-pod-name
  • 表示される内容:
    • Podの状態(Running / Pending / Failed)
    • コンテナのイメージ、マウント情報
    • 最後に発生したイベント(失敗理由など)
  • トラブル時に特に有効
    • Podが起動しない
    • イメージが見つからない
    • マウントエラーなどの確認に最適

📜 3. kubectl logs:アプリケーションログを確認する

Pod内で動いているアプリケーションの標準出力/標準エラーを取得します。

kubectl logs my-pod-name

複数コンテナがある場合:

kubectl logs my-pod-name -c コンテナ名

リアルタイムで監視:

kubectl logs -f my-pod-name

よくある使い方:

  • Webアプリのエラーメッセージを見る
  • バッチ処理の進行状況を見る
  • 起動直後にクラッシュした理由を探す

🛠️ 4. kubectl exec:Pod内でコマンドを実行する

Podの中に入り込んで、直接 lscatcurl などを実行できます。まるでリモートシェルのように使えます。

kubectl exec -it my-pod-name -- bash
  • -it はインタラクティブモードで接続するためのオプション
  • -- の後にシェルコマンドを記述
  • 具体的な利用例:
    • 環境変数の確認:env
    • ログファイルの中身を見る:cat /var/log/...
    • ネットワーク疎通確認:curlping

✅ まとめ:この4つでKubernetesの観察とデバッグができる!

コマンド主な用途
kubectl get全体の一覧を見て状況をつかむ
kubectl describe詳細な状態やエラー、イベントの確認
kubectl logsアプリケーションの出力ログを確認
kubectl execPod内でコマンド実行、問題の直接調査

💡 補足Tips

  • 使い慣れてきたら alias k=kubectl を設定すると操作が楽になります。
  • kubectl get all で主要リソースまとめて見られます(ただしPod以外も混在)。
  • 実際に使うときはリソース名の補完が面倒なので kubectl get pods | grepwatch コマンドと組み合わせると便利です。

mh

Related Posts

Kubernetes Learning 第4章:Kubernetesを触ってみよう(最小構成で試す)

Minikube / kind / ローカル環境の選定と構築…

Kubernetes Learning 第3章:Dockerとの関係

Kubernetesを学び始めると、「そもそもDockerと…

You Missed

Kubernetes Learning 第5章:kubectl の基本操作(get / describe / logs / exec)

  • 投稿者 mh
  • 5月 9, 2025
  • 5 views

Android application development 第9章:イベントリスナーの定義(Java視点からの違和感に注意)

  • 投稿者 mh
  • 5月 9, 2025
  • 4 views

Android application development 第8章:XMLによるUI記述とコードの連携

  • 投稿者 mh
  • 5月 8, 2025
  • 19 views

Kubernetes Learning 第4章:Kubernetesを触ってみよう(最小構成で試す)

  • 投稿者 mh
  • 5月 8, 2025
  • 20 views

Android application development 第7章:ViewとViewGroup、Layoutの基本的な考え方

  • 投稿者 mh
  • 5月 7, 2025
  • 19 views

Kubernetes Learning 第3章:Dockerとの関係

  • 投稿者 mh
  • 5月 7, 2025
  • 17 views