6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【本気で学ぶKubernetes】Kubernetesの基本ツール・コマンドの使い分けまとめ

Last updated at Posted at 2025-12-03

はじめに

こんにちは!

本記事は「本気で学ぶKubernetes」シリーズの第3回です。このシリーズでは、Kubernetesの基礎から実践まで、段階的に学んでいきます。

このシリーズは、第1回から順に読むことで体系的に学べる構成にしています。
まだご覧になっていない方は、ぜひ最初からご覧ください!

Kubernetesとは?クラスタ構成の全体像をつかむ

今回は実践に進む前の準備として、Kubernetesを動かすための環境準備と基本ツール・コマンドを整理していきます。kubectl、minikubeといった基本ツールのインストール方法から、よく使うコマンドまで、チートシート形式でまとめました。

この記事は人間がKubernetesの公式ドキュメントを読み漁りながら、人間の手で書いていますのでご安心ください!

前提知識

  • k8sの基本概念を理解している方
  • ローカルでk8sを試してみたい方
  • kubectlやminikubeという言葉は聞いたことがあるが使ったことがない方

筆者の環境

  • OS: macOS Sonoma 14.5
  • チップ: Apple Silicon M2
  • メモリ: 24GB
  • コンテナランタイム: Rancher Desktop 1.20.1

基本コマンドの実行方法自体はどのOSでもさほど変わりないと思います。
パッケージのインストールについてはMacOSのみ紹介し、Homebrewを使ってパッケージ管理をしていきます。

kubectlとは

kubectlは、Kubernetesクラスタを操作するためのCLIツールです。
読み方はキューブコントロールです。(キューブ派とクーべ派があるようです)

主な用途としては

  • リソース管理: Pod、Deployment、Serviceなどのk8sリソースの作成・削除・更新
  • デプロイメント操作: アプリケーションのデプロイ、スケーリング
  • クラスター情報の取得: クラスタの状態確認、リソース使用状況の監視
  • デバッグ: ログ確認、コンテナ内でのコマンド実行、ポート転送
  • 設定管理: kubeconfigファイルを通じた複数クラスタの管理

Kubernetesに関わるほぼ全ての操作はこのkubectlから実行できます。
ローカルオンプレミス環境だけでなく、EKSやGKEなどクラウドにデプロイしたクラスターの切り替えから操作までを行えます。

インストール方法

Mac(Homebrew)

brew install kubectl

インストールが完了したら、バージョンを確認します。

kubectl version --client

# 出力例:
# Client Version: v1.29.15

Lanchar Desktopを使用している場合はkubectlを含めたコンテナに関するツールが既にインストールされているようです。

出典: Kubernetes公式ドキュメント - macOS上でのkubectlのインストールおよびセットアップ

基本コマンド体系

kubectlのコマンドは以下の構文で統一されています。
コンテナ系のツールは引数が多いため、正直覚えるのがとても大変ですね。

# kubectl [command] [type] [name] [flags]

kubectl get pods nginx -n default
         ↑   ↑    ↑     ↑
      コマンド 種類 名前  フラグ

kubectlコマンドチートシート

実際に使われそうなコマンドをカテゴリ別に整理しました。

カテゴリ コマンド 説明 使用例
リソース確認 get リソース一覧の取得 kubectl get pods
describe リソースの詳細情報 kubectl describe pod hello-node
logs Podのログ確認 kubectl logs hello-node
logs -f ログをリアルタイム表示 kubectl logs -f hello-node
リソース操作 apply マニフェストの適用 kubectl apply -f deployment.yaml
create リソースの作成 kubectl create deployment hello-node
delete リソースの削除 kubectl delete pod hello-node
edit リソースの編集 kubectl edit deployment hello-node
デバッグ exec コンテナ内でコマンド実行 kubectl exec -it hello-node -- /bin/bash
port-forward ローカルからPodへポート転送 kubectl port-forward pod/hello-node 8080:8080
top リソース使用状況 kubectl top pods
コンテキスト config view kubeconfig表示 kubectl config view
config use-context コンテキスト切り替え kubectl config use-context minikube
config get-contexts コンテキスト一覧 kubectl config get-contexts

よく使うリソースタイプの省略形

毎回長い名前を打つのは面倒なので、省略形が用意されています。
粋な計らいとても助かります!

  • podspo
  • servicessvc
  • deploymentsdeploy
  • replicasetsrs
  • namespacesns
  • nodesno

省略形はk8sで一般的に使われる名称のため、確実に覚えた方が良さそうです!

便利なオプション

またkubectlには便利なオプションがたくさんあります。

  • -o wide: 詳細情報を表示
  • -o yaml: YAML形式で出力
  • -o json: JSON形式で出力
  • -n <namespace>: 指定したnamespaceで実行
  • --all-namespaces または -A: 全namespaceで実行
  • --watch または -w: リアルタイムでの監視

minikubeとは

minikubeは、ローカル環境でのKubernetesクラスタを構築するツールです。

ローカルでKubernetesを動かす選択肢はいくつかありますが、一般的で機能も豊富に提供されているようです。

ツール 特徴 用途
minikube ローカル向けのクラスター構築 学習・開発
kind (Kubernetes in Docker) 軽量、Docker上で動作 CI/CD、軽量開発
Docker Desktop Mac/Windowsで手軽 簡易開発
Rancher Desktop Docker Desktop代替 開発
kubeadm 本番環境向け 本番クラスター構築

Kubernetes組み込み版(k3s)も利用可能ですが、今回学習のためminikubeを使用してリソース構築をしていきたいと思います。

インストール方法

Mac(Homebrew)

brew install minikube

以下のコマンドでバージョンを確認します。
バージョン情報が表示されれば無事インストール完了です。

minikube version
# minikube version: v1.37.0

minikubeコマンドチートシート

カテゴリ コマンド 説明 使用例
基本操作 start クラスタの起動 minikube start
stop クラスターの停止 minikube stop
delete クラスターの削除 minikube delete
status 状態確認 minikube status
pause クラスターの一時停止 minikube pause
unpause クラスターの再開 minikube unpause
情報確認 dashboard GUIダッシュボード起動 minikube dashboard
ip クラスタのIPアドレス確認 minikube ip
profile list プロファイル一覧 minikube profile list
デバッグ ssh ノードへのSSH接続 minikube ssh
logs minikubeのログ確認 minikube logs
サービス service Serviceへのアクセス minikube service hello-node
service list Service一覧とURL minikube service list
tunnel LoadBalancer有効化 minikube tunnel
アドオン addons list アドオン一覧 minikube addons list
addons enable アドオン有効化 minikube addons enable metrics-server
addons disable アドオン無効化 minikube addons disable metrics-server

加えてminikubeには便利なアドオンがあらかじめ用意されています。

  • ingress: Ingress Controllerを有効化
  • metrics-server: リソースのメトリクスを収集
  • dashboard: Kubernetes Dashboardを表示

実践

ここまでインプットばかりでうずうずしてきたところで、ここからは実際にクラスターを作成して操作してみます。

minikube start

# 😄  Darwin 14.5 (arm64) 上の minikube v1.37.0
# ...(省略)...
# 🏄  終了しました!kubectl がデフォルトで「minikube」クラスターと「default」ネームスペースを使用するよう設定されました

5分〜10分くらいするとクラスターが立ち上がります。

minikube status

# minikube
# type: Control Plane
# host: Running
# kubelet: Running
# apiserver: Running
# kubeconfig: Configured

次はアドオンで利用可能なダッシュボードを起動してみます。
新しくターミナルを開いて以下のコマンドを実行します。

minikube dashboard

# 🤔  ダッシュボードの状態を検証しています...
# 🚀  プロキシーを起動しています...
# 🤔  プロキシーの状態を検証しています...
# 🎉  デフォルトブラウザーで http://127.0.0.1:60439/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ を開いています...

実行するとこのようなダッシュボード画面が表示されました。
公式が用意しているWebUIです。

minikube-dashboard.png

稼働中のPodやサービスなどあらゆる情報がここで閲覧できるようですね。
またGUIベースでKubernetesのリソース作成削除も行うことができます。

今度はkubectlコマンドでDeploymentを作成します。

 kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.53 -- /agnhost netexec --http-port=8080
 
 # deployment.apps/hello-node created

以下のコマンドで作成したDeploymentを確認できます。

kubectl get deployments

# NAME         READY   UP-TO-DATE   AVAILABLE   AGE
# hello-node   1/1     1            1           70s

# 詳細を確認したい場合はこちら
kubectl get deployments -o yaml

# 作成されたPodを確認。
kubectl get pods

# NAME                          READY   STATUS    RESTARTS   AGE
# hello-node-6c9b5f4b59-6zxz5   1/1     Running   0          4m42s

Podはそのままだとクラスター内部のIPアドレスからしかアクセスできないため、Serviceを作成して公開します。

kubectl expose deployment hello-node --type=LoadBalancer --port=8080

# service/hello-node exposed

# 作成されたサービスを確認。
kubectl get services

# NAME         TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
# hello-node   LoadBalancer   10.xx.xx.xx      <pending>     8080:32673/TCP   2m38s
# kubernetes   ClusterIP      10.xx.xx.xx      <none>        443/TCP          31m

以下のコマンドを実行するとブラウザが開き、アプリケーションの応答が表示されます。

minikube service hello-node

# NOW: 2025-12-02 10:23:32.244945149 +0000 UTC m=+630.231632219

ダッシュボードで確認するとServiceやPodなどKubernetesクラスターのリソースが作成され公開されていることが確認できました。

minikube-dashboard-service.png

クラスタの停止・削除

最後に今回作成したリソースのお片付けを行います。

# 作成したリソースの削除
kubectl delete service hello-node
kubectl delete deployment hello-node

# クラスタの停止(データは保持される)
minikube stop

# 次回起動時
minikube start

# クラスタの削除(もう使わない場合はこちら)
minikube delete

出典: Kubernetes公式ドキュメント - Hello Minikube

あると便利な開発ツール

ここからは必須ではありませんが、実務では非常に便利なツールを簡単に紹介します。

ツール 概要 用途
Helm Kubernetesのパッケージマネージャー apt/yum/npmのKubernetes版でMySQL、Redis、Nginxなど既存アプリの導入など
Kustomize マニフェストのカスタマイズツール 環境ごとの差分管理(dev/staging/prod)
k9s ターミナル上で動作するKubernetes UI キーボードでリソース確認・操作可能
kubectx / kubens クラスタ/Namespace切り替えツール 複数環境を扱う時の切り替え
stern 複数Podのログを同時にTail表示 デバッグ時のログ確認
Lens デスクトップGUIのKubernetes IDE CUIが苦手な方向けのGUI操作ツール
dive Dockerイメージのレイヤー構造解析 イメージサイズの最適化ツール

まとめと次回予告

今回確認したコマンドを簡単にまとめると以下の通りです。

  1. kubectl: Kubernetesクラスタとそのリソースを操作するためのCLIツール
  2. minikube: ローカルでk8sクラスタを動かすための環境構築ツール

公式ドキュメントにチートシートがまとめられているので、その他の使い方はぜひ以下のリンクをご確認ください!

リソース作成、リソース操作のためのコマンドは、Kubernetes自体の主要概念を正しく理解しておかないとなかなかとっつきづらい部分が多い印象です。

百聞は一見にしかず、実際にDeloplymentやPodのYAMLを作成して、Nginxを起動できるようなハンズオンを行いながら慣れていければと思います。

それでは、また明日!

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?