AI

OSSのK8sクラスタ管理ツール比較:k9s vs Lens vs Headlamp でKubernetesを快適に運用する

オープンソースラボ編集部2026年6月14日

OSSのK8sクラスタ管理ツール比較:k9s vs Lens vs Headlamp でKubernetesを快適に運用する

Kubernetes Dashboard(公式・機能限定)・Rancher(エンタープライズ・重い)に対して、k9s(ターミナルUI・最も高速なK8sクラスタ操作)・Lens(Electron製・最も豊富なGUI)・Headlamp(軽量WebUI・拡張可能)はOSSのKubernetesクラスタ管理ツールです。

K8s管理ツールが必要な場面

  • リアルタイムモニタリング: Pod/Node/Deploymentのリソース使用量を一覧で監視
  • デバッグ: CrashLoopBackOffのPodのログとイベントを素早く確認
  • スケール操作: ReplicaSetのスケールアップ/ダウンをGUIで即実行
  • マルチクラスタ管理: 開発・ステージング・本番の複数クラスタを1画面で切り替え
  • ログテーリング: 複数Podのログを同時にストリーミング表示

主要ツールの概要

k9s

2018年に公開されたGo製のOSSターミナルUIです。GitHubスター27k+。kubectlコマンドを覚えなくてもvimキーバインドでK8sリソースを操作できるTerminal UIで、K8sエンジニアに最も愛用されているツールです。:pod:svc:deploy等でリソース一覧を表示、lでログ、sでshell、dでdescribeが即座に実行できます。

# k9sのインストール
# macOS
brew install k9s

# Linux( snapd)
snap install k9s

# またはバイナリ直接取得
curl -sS https://webinstall.dev/k9s | bash

# Windowsはscoop
scoop install k9s
# k9sの起動と基本操作
k9s                              # デフォルトkubeconfigで起動
k9s --kubeconfig ~/.kube/config  # kubeconfig指定
k9s -n default                   # 特定ネームスペースで起動
k9s --context prod-cluster       # 特定のクラスタコンテキストで起動

# k9s 内のキーバインド(起動後)
# :pod       → Pod一覧を表示
# :svc       → Service一覧
# :deploy    → Deployment一覧
# :ns        → Namespace一覧
# :pvc       → PersistentVolumeClaim一覧
# l          → ログを表示(選択中のPodのログをテーリング)
# s          → コンテナにshell接続(exec -it)
# d          → describe(詳細情報)
# e          → YAMLをvimで編集(kubectl edit)
# ctrl+d     → Podを削除
# /          → 名前でフィルタリング
# ?          → ヘルプ(キーバインド一覧)
# ~/.config/k9s/config.yaml - k9sのカスタム設定
k9s:
  refreshRate: 2          # 2秒ごとにリフレッシュ
  maxConnRetry: 5
  ui:
    skin: dracula         # テーマ(dracula・solarized等)
    noIcons: false
    headless: false
  logger:
    tail: 200             # ログの表示行数
    buffer: 5000
    sinceSeconds: 300     # 直近5分のログを表示
    fullScreenLogs: false
  clusters:
    prod-cluster:
      namespace:
        active: production
        favorites:
          - production
          - monitoring
          - ingress-nginx
      views:
        deployments:
          columns:
            - NAME
            - READY
            - UP-TO-DATE
            - AVAILABLE
            - AGE
            - IMAGES
# k9sのプラグイン設定(カスタムコマンドを追加)
# ~/.config/k9s/plugins.yaml

# kubectl top nodeをk9sから実行するプラグイン例
plugins:
  node-top:
    shortCut: Shift-T
    description: "kubectl top node"
    scopes:
      - nodes
    command: kubectl
    background: false
    args:
      - top
      - node
      - --use-protocol-buffers

  # Podのリソース使用量をwatch
  watch-pod-resources:
    shortCut: Ctrl-W
    description: "watch kubectl top pods"
    scopes:
      - pods
    command: sh
    background: false
    args:
      - -c
      - "watch -n1 kubectl top pods -n $NAMESPACE"

Headlamp

2020年に公開されたGo/TypeScript製のOSS Kubernetes WebUIです。GitHubスター2k+。プラグインシステムによる拡張が可能な軽量WebUIで、kubeconfigを自動検出してブラウザからK8sクラスタを操作できます。Electronなどのデスクトップアプリインストールが不要で、Helmで社内K8sクラスタにデプロイして全員がブラウザから利用できます。Fluxの可視化・Backstage統合プラグインが提供されています。

# Headlampをローカルで起動(デスクトップ版)
# macOS
brew install --cask headlamp

# Linux AppImage
wget https://github.com/headlamp-k8s/headlamp/releases/latest/download/Headlamp-linux-x86_64.AppImage
chmod +x Headlamp-linux-x86_64.AppImage
./Headlamp-linux-x86_64.AppImage
# HeadlampをKubernetesクラスタ内にデプロイ(全員がブラウザから利用)
# Helmでのデプロイ
helm repo add headlamp https://headlamp-k8s.github.io/headlamp/
helm repo update
helm install headlamp headlamp/headlamp   --namespace headlamp   --create-namespace   --set ingress.enabled=true   --set ingress.hosts[0].host=k8s.yourcompany.com   --set ingress.hosts[0].paths[0].path=/   --set ingress.ingressClassName=nginx

# サービスアカウントトークンの取得(認証用)
kubectl create serviceaccount headlamp-admin -n headlamp
kubectl create clusterrolebinding headlamp-admin   --clusterrole=cluster-admin   --serviceaccount=headlamp:headlamp-admin
TOKEN=$(kubectl create token headlamp-admin -n headlamp --duration=8760h)
echo $TOKEN

機能比較表

比較項目k9sLensHeadlamp
インターフェースターミナルUIElectron GUIWebUI
インストールバイナリ1つElectronアプリHelmデプロイ可
ショートカットvim風キーバインドGUI操作キーボード対応
プラグインYAML設定Lens ExtensionsReact/TypeScript
マルチクラスタ
リアルタイムログ
GitHub Stars27k+22k+2k+

k9sでモニタリングするPodのカスタムメトリクスはDevOpsカテゴリ/categories/devopsのPrometheus+Grafanaダッシュボードで可視化します。K8sクラスタのIaCプロビジョニングにはDevOpsカテゴリ/categories/devopsのOpenTofu/Pulumiを使って再現性のあるクラスタ構築が可能です。

FAQ

Q. k9s・Lens・Headlampのどれを最初に学ぶべきですか?

A. 役割・用途によって推奨が変わります。インフラ/DevOpsエンジニア(ターミナル操作に慣れている): k9s一択。.kube/configがあれば即起動でき、kubectlの操作をほぼ全て代替できる。速度が最速。フルスタックエンジニア(kubectl初めて): Lensが最も直感的なGUI。Podの状態をダブルクリックで確認できる。チーム全員でK8s管理したい: HeadlampをHelmでクラスタ内にデプロイして全員がブラウザからアクセス。3つとも無料・OSSなので「まずk9sを試して、チーム共有にHeadlampを追加」が最もコストパフォーマンスが高いです。

Q. k9sでCrashLoopBackOffのPodをデバッグする手順は?

A. k9s内での手順: ①:podでPod一覧を開く②CrashLoopBackOffのPodを選択→dでdescribeを確認(Events欄にOOMKilledやExitCodeが表示)③lでログを確認(前回のクラッシュログはpでprevious logs)④メモリ不足の場合: :deployでDeploymentを選択→eで編集→resources.limits.memoryを増やす⑤設定ミスの場合: :cmでConfigMapを確認→eで編集→該当Podをctrl+dで削除して自動再起動させる。

Q. k9sで複数のK8sクラスタを切り替えるには?

A. kubeconfigに複数のcluster/context設定がある場合、k9s内で:ctxコマンドを入力するとコンテキスト一覧が表示されます。選択してEnterで即切り替えができます。コマンドラインからは: k9s --context staging-clusterで特定クラスタを指定して起動します。複数のkubeconfigファイルを使う場合は環境変数KUBECONFIG=~/.kube/config:~/.kube/staging-configで複数ファイルをマージして使えます。

Q. HelmでK8sにアプリをデプロイしてk9sで監視するワークフローは?

A. 標準的なワークフロー: ①helm install myapp ./charts/myapp -n productionでデプロイ②k9sを別ターミナルで起動③:pod -n productionでProductionのPodをウォッチ④PodがRunningになるまでステータスを確認⑤lでアプリのログをリアルタイムストリーミング⑥問題があれば:events -n productionでKubernetesイベントを確認。CI/CDのGitHub ActionsでHelmデプロイ→Slackにデプロイ完了通知→k9sでモニタリングが標準的な運用フローです。

まとめ

ユースケース推奨ツール
ターミナル操作・最速デバッグ・DevOpsk9s
GUIで操作・ビジュアルでK8s学習Lens
チーム全員が使えるWebUI・拡張性Headlamp

関連外部リソース

他の記事も読む

Let's Build Together

OSS導入、自社だけで悩まない。

ツール選定から構築・運用・AI活用まで、オープンソースラボ運営元のClasslessが伴走します。初回のご相談は無料です。