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 第38章:Operatorとは? ~Kubernetesに「運用の自動化ロボット」を組み込む仕組み~

Kubernetes Learning 第37章:JenkinsやGitHub ActionsからのKubernetesデプロイ例 ~CI/CDツールとKubernetesをつなげてみよう~

You Missed

Kubernetes Learning 第38章:Operatorとは? ~Kubernetesに「運用の自動化ロボット」を組み込む仕組み~

  • 投稿者 mh
  • 6月 19, 2025
  • 10 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第11章:Cloud Load Balancing:あなたのGCPリソースを「賢く振り分ける交通整理の達人」

  • 投稿者 mh
  • 6月 18, 2025
  • 13 views

Kubernetes Learning 第37章:JenkinsやGitHub ActionsからのKubernetesデプロイ例 ~CI/CDツールとKubernetesをつなげてみよう~

  • 投稿者 mh
  • 6月 17, 2025
  • 17 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第10章:Cloud DNS:インターネットの「電話帳」サービス

  • 投稿者 mh
  • 6月 16, 2025
  • 20 views

Kubernetes Learning 第36章:Argo CDとFluxの概要~Kubernetesの自動運用を支えるGitOpsツール~

  • 投稿者 mh
  • 6月 15, 2025
  • 37 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第9章:IPアドレス(外部IP、内部IP、静的IP):GCPリソースの「住所」と「電話番号」

  • 投稿者 mh
  • 6月 14, 2025
  • 31 views