Kubernetesのコマンド

 Kubernetesは、コンテナを一元的に管理・操作するためのプラットフォームであり、ユーザーはkubectlコマンドを使用してKubernetesのリソースに対する操作を行います。Kubernetesの管理には、これまでDockerで使っていたようなコマンドとは異なりますがが、操作方法は似ています。

 Kubernetesの操作は基本的に「定義ファイル」を使って行い、手動で1つずつコンテナを作成するよりも、リソースの設定をまとめて管理するスタイルが主流です。

 特に初心者には、リソースの作成・削除や状態の確認を行うkubectl applykubectl deleteなどの基本コマンドを覚えることが推奨されます。コンテナ内の操作などは、基本的な操作に慣れてから行うようにしましょう。

主なkubectlコマンド

コマンド内容
createリソースを新規作成するコマンド。Pod、Service、ConfigMapなどさまざまなリソースを生成することが可能。kubectl createを使い、直接指定することもできるが、kubectl applyを使って定義ファイルから作成することが推奨される。
edit既存のリソースを編集するコマンド。リソースの定義ファイルを編集し、動的に変更を加えることができる。例として、Podのスペックやサービスの設定を編集する場合に利用。
deleteリソースを削除するコマンド。不要なPodやServiceを削除し、Kubernetes内のリソースを整理する。単一リソースや複数のリソースをまとめて削除することが可能。
getリソースの状態を表示するコマンド。リソースの一覧や特定のリソースの詳細情報を取得するために使用される。kubectl get podskubectl get servicesなどで現在のリソースの状態を確認できる。
setリソースの値を設定するコマンド。イメージの更新やリソースの設定を動的に変更するために使用される。kubectl set imageなどでコンテナイメージを更新する場合に使われる。
apply定義ファイルの内容を基にリソースを作成または更新するコマンド。手動でコンテナやリソースを作成するのではなく、定義ファイルを適用してリソースを一括で管理・設定する。
describeリソースの詳細情報を確認するコマンド。リソースのイベント履歴や状態をより詳細に確認するために利用される。例えば、Podのトラブルシューティング時に役立つ。
diff現在のリソースの状態と定義ファイルの「望ましい状態」との差異を確認するコマンド。定義ファイルを適用する前に、どのような変更が行われるかを事前に確認するために使われる。
exposeリソースを公開するための定義ファイルを作成し、リソースの外部アクセスを可能にする。通常はServiceを作成する際に使われ、内部Podに外部からアクセスできるようにする。
scaleリソースのレプリカ数を変更するコマンド。リソースをスケールアウトやスケールインし、必要なPod数を調整する。
autoscaleリソースのオートスケールを設定するコマンド。CPUやメモリの使用率に基づいて自動的にPodの数を増減させ、リソースの効率的な使用を確保する。
rolloutロールアウト操作を実行するコマンド。新しいバージョンのデプロイメントをロールアウトし、徐々に変更を適用することでサービスへの影響を最小限に抑える。
exec実行中のコンテナ内でコマンドを実行するコマンド。デバッグやトラブルシューティングのためにコンテナ内で直接コマンドを発行することができる。
run新しいPodを作成し、指定したコマンドを1度だけ実行するコマンド。コンテナ内で実行される一時的なジョブを作成する際に利用される。
attach既存のコンテナにアタッチし、コンテナの標準入力にアクセスしたり、リアルタイムでログを確認できる。デバッグ時に利用されることが多い。
cpローカルマシンとコンテナ間でファイルをコピーするコマンド。ログや設定ファイルを確認したり、アップロードする際に使用。
logsコンテナのログを表示するコマンド。トラブルシューティングのためにコンテナが出力するログを確認する際に使用される。
cluster-infoクラスターの詳細情報を表示するコマンド。現在のクラスターの状態や構成情報を確認する際に役立つ。
topクラスター全体または特定のPodのCPU、メモリ、ストレージの使用状況を確認するコマンド。リソースの消費状況を監視する際に利用される。
主なkubectlコマンド

まとめ

 Kubernetesでは、kubectlコマンドを使ってクラスター内のリソースを効果的に管理・操作します。特に初心者は、applydeletegetなどの基本コマンドにまず慣れ、定義ファイルに基づいてリソースを管理する手法を学ぶと良いでしょう。