Kubernetes Managed Service Column <Kubernetes運用コラム>

Kubernetesの柔軟な管理を実現するコマンドラインツール「kubectl」について解説します!

Category: 入門編

2024.02.01

kubectlの概要、特徴、基本機能、拡張機能について

kubectl とは Kubernetes クラスターを操作するためのコマンドラインツールです。シンプルな操作性、柔軟性、拡張性を備え、開発者や運用者にとって大変有用なツールです。

本記事では、 kubectl について概要、特徴、基本機能から拡張機能まで利用方法について紹介します。

1.kubectlとは

kubectl は Kubernetes API を使用して Kubernetes クラスターのコントロールプレーンと通信するためのコマンドラインツールです。 Kubernetes では、クラスター上でのあらゆる操作を Kubernetes API サーバを通して実行します。

kubectlの概要

kubectlの制御対象

kubectl では主に以下のコンポーネントを制御することで、クラスター管理を行なっています。

Context(コンテキスト)

Kubernetes クラスターへの接続情報、認証情報を組み合わせたものです。 kubectl でクラスターに接続するとき、 Context 単位で Kubernetes クラスターに接続するかが決まります。

Namespace(ネームスペース)

Kubernetes クラスター内でリソースを論理的に分離するための仮想クラスターです。ネームスペースを使用することで、同じクラスター内で異なるプロジェクトやチームが独自の環境を持つことができます。 Namespace はオプション設定なので、ネームスペースを変更する必要があるときだけ設定します。

Namespace(ネームスペース)

図版出典:Think IT

Pod(ポッド)

Kubernetes上で動作する最小の実行単位であり、1つ以上のコンテナをまとめたものです。ポッドは同じネットワークとストレージを共有し、アプリケーションを実行するために使用されます。

Deployment(デプロイメント)

アプリケーションやサービスのデプロイとスケーリングを管理するリソースです。 Pod のセットを定義し、スケーリングやアップデートを容易に行うことができるようになります。

Service(サービス)

クラスター内のポッドに対して永続的なネットワークエンドポイントを提供し、外部からアクセスできるようにする仕組みです。

2. kubectlの基本的な利用方法

kubectl の基本的な利用方法について代表的な OS へ対するインストール方法及びコマンドラインについて解説します。

インストール

kubectl をインストールするには、 Kubernetes クラスターのバージョンに合わせたkubectl のバージョンを選択し、適切な手順に従ってインストールする必要があります。

バージョンは、クラスターのマイナーバージョンとの差分が1つ以内である必要があり、例えば、クライアントが v1.2 であれば、 v1.1 、 v1.2 、 v1.3 のマスターで動作する最新バージョンの kubectl を使うことが推奨されます。

サポートされているプラットフォーム及びそれらの一般的な環境での kubectl のインストール手順の概要を解説します。

Linuxの場合

kubectl は Linux ディストリビューション( Ubuntu 、 Debian 、 CentOS 、 Fedora など)でサポートされています。標準のパッケージマネージャーやダウンロード経由でインストールすることができます。

手順1.kubectlのダウンロード
sudo curl -LO https://dl.k8s.io/release/$(curl -Ls 
https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl
手順2.kubectlを実行可能にする
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
手順3.インストールの確認コマンド
kubectl version --client

macOSの場合

kubectl は macOS でもサポートされており、 Homebrew などのパッケージマネージャーを使用して簡単にインストールできます。

手順1.kubectlのダウンロード
curl -LO "https://dl.k8s.io/release/$(curl -L -s 
https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
手順2.インストール
curl -LO "https://dl.k8s.io/release/$(curl -L -s 
https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl.sha256"
手順3.インストールの確認コマンド
kubectl version –client

Homebrew を使用して kubectl をインストールする場合は以下のコマンドとなります。

brew install kubectl

Windowsの場合

kubectl.exe が Windows でサポートされています。 Windows 用のバイナリをダウンロードして実行します。

手順1.kubectl.exeのダウンロード

https://kubernetes.io/ja/docs/tasks/tools/install-kubectl/#install-kubectl-on-windows  から kubectl.exe をダウンロードして、任意のディレクトリに保存します。

手順2.環境変数の設定

ダウンロードしたディレクトリをシステムの環境変数 PATH に追加します。

手順3.インストールの確認コマンド
kubectl version --client

このコマンドを実行して、正しく kubectl がインストールされているか確認します。

注意事項としてこれらのインストールには適切な権限が必要です。事前に実施する際の権限を確認しましょう。またダウンロードする kubectl のバージョンは、クラスターのバージョンと互換性があることもあわせて確認しましょう。

詳細についてはKubernetes の公式ドキュメントをご参照ください。

kubectlの基本コマンドの利用事例

kubectlでよく使われる基本的なコマンドをオプションの例も含み紹介します。

Podの一覧を表示

kubectl get pods -n <namespace>

特定の名前空間に絞って Pod を表示します。

Podの詳細情報を表示

kubectl describe pod <pod-name>

デプロイメントの一覧を表示

kubectl get deployments --all-namespaces
または
kubectl get deployments -A 

すべての名前空間でデプロイメントを表示します。

サービスの一覧を表示

kubectl get services -o wide

追加の情報( IP アドレスなど)を含めてサービスを表示します。

YAMLファイルからリソースをデプロイ

kubectl apply -f my-resource.yaml --validate=false

リソースのバリデーションを無効にしてデプロイします。

Pod内でコマンドを実行

kubectl exec -it <pod-name> -c <container-name>  -- /bin/bash

特定のコンテナ内でコマンドを実行します。

ログを表示

kubectl logs <pod-name> -f

ログをリアルタイムで表示します。

Podを削除

kubectl delete pod <pod-name> --grace-period=0 –force

強制的に Pod を削除します。

これらは一般的な kubectl コマンドの一部であり、様々なオプションを組み合わせて利用できます。特定の操作や詳細なオプションについては、 kubectl –help や Kubernetes の公式ドキュメントをご参照ください。

3. kubectlの拡張的な利用方法

Kubernetes クラスターとの対話をより効果的にするために、 kubectl の拡張機能として外部のツールやスクリプトを利用する手段を提供します。本章では拡張機能であるプラグインと、 Kubernetes エコシステムについて解説します。

kubectlのプラグイン

kubectl プラグインとは、 kubectl ツールの拡張機能として追加の機能やサブコマンドを提供する外部ツールやスクリプトです。

Krewと呼ばれるkubectlのプラグインマネージャーを使用して簡単に導入でき、プラグインのインストールや削除、一覧表示などを簡単に行うことができます。 krew を使用して新しいプラグインをインストールするコマンドは以下の通りです。

プラグインのインストール

kubectl krew install <plugin-name>

※下記はkrew自体をインストールする場合です。

kubectl krew install krew

プラグインの一覧表示

kubectl krew list

インストールされたプラグインの一覧を表示します。

プラグインの更新

kubectl krew update

krew も含め、インストールされたプラグインをアップデートします。

プラグインを活用することで Kubernetes の操作や管理タスクを拡張し、より便利に行えるようになります。

Kubernetesのエコシステムとの統合

Kubernetes エコシステムには、 kubectl と連携する多くのサードパーティのツールがあります。例えば、 Kubernetes ダッシュボード、 K9s 、 Lens などが代表的なものです。

これらのツールは、クラスターを可視化し、管理するためのグラフィカルユーザーインターフェース( GUI )を提供しkubectl をより効果的に利用できるようになります。

また Kubernetes コミュニティでは、ワークショップ、ウェビナー、カンファレンスなどを通じて、 kubectl や Kubernetes のトレーニングとイベントが提供されています。必要に応じてこれらの情報を活用することが推奨されます。

4. まとめ

kubectl は、 Kubernetes クラスターを操作するための強力で柔軟なコマンドラインツールであり、クラスター内のリソースの作成、管理、監視を容易に行うことができます。

本記事でご紹介した機能はほんの一部です。様々な機能を備えており、 Kubernetes の運用を効果的に実行できる欠かせない管理ツールです。 kubectl の活用をご検討下さい。

Kubernetes の運用をサポートしてほしい

Kubernetes運用サポートサービス

Kubernetes運用サポートサービス

クラウドベンダが提供する Kubernetes 環境の運用をサポートします。

Free

資料ダウンロード

課題解決に役立つ詳しいサービス資料はこちら

資料ダウンロード
  • Kubernetes運用サポートサービスカタログ

    サービスの詳細をご覧いただけます。

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php