はじめに
Kubernetes は、開発者がコンテナ化されたアプリケーションを展開、スケーリング、管理するのを支援する強力なコンテナオーケストレーション ツールです。Kubernetes クライアント (kubectl) とサーバーのバージョンを把握することは、トラブルシューティング、互換性の確認、更新の管理にとって不可欠です。この実験では、クライアントとサーバーのバージョンを確認し、出力をさまざまな形式で整形する方法を学びます。
Kubernetes クラスターを起動する
Kubernetes コマンドを実行する前に、稼働しているクラスターが必要です。この実験では、Minikube を使用してローカルの Kubernetes クラスターをセットアップします。
まず、ターミナルを開き、/home/labex/project ディレクトリにいることを確認します。
cd ~/project
次に、次のコマンドで Minikube クラスターを起動します。
minikube start
このコマンドは単一ノードの Kubernetes クラスターを初期化します。Minikube は、リモート クラスターを必要とせずに、ローカルで Kubernetes コマンドをテストする簡単な方法を提供します。Minikube がクラスターをセットアップして必要なコンポーネントをインストールするため、このプロセスには数分かかる場合があります。
クラスターが稼働していることを確認するには、次のコマンドを実行して状態を確認できます。
minikube status
クラスターが稼働していることを示す状態が表示されるはずです。そうでない場合は、minikube delete を実行してから minikube start で Minikube を再起動してみてください。
クライアントとサーバーのバージョン
Kubernetes クライアントとサーバーの両方のバージョン情報を表示するには、次のコマンドを使用します。
kubectl version
このコマンドは、クライアント (ローカルの kubectl ツール) とサーバー (クラスター内で実行されている Kubernetes API) の両方の詳細を出力します。バージョン情報には、メジャー バージョンとマイナー バージョン、Git コミット ハッシュ、ビルド日付などが含まれます。
たとえば、次のような出力が表示される場合があります。
Client Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.0",...}
Server Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.0",...}
「Client Version」は kubectl ツールのバージョンを示し、「Server Version」はクラスター内の Kubernetes API サーバーを指します。これらのバージョンは、コマンドが正しく機能するために理想的には一致または互換性がある必要があります。
クライアントのバージョンのみを取得する
時には、たとえば、ローカルの問題をトラブルシューティングしたり、リモート クラスターとの互換性を確認したりする際に、kubectl ツールのバージョンのみを確認する必要がある場合があります。クライアントのバージョンのみを表示するには、次のコマンドを使用します。
kubectl version --client
このコマンドは、Kubernetes クラスターに接続しようとせずに、クライアントのバージョンのみを出力します。クラスターが利用できない場合や、マシン上の kubectl のインストールを確認したい場合に特に便利です。
出力は次のようになります。
Client Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.0",...}
JSON 形式でサーバーのバージョン情報を表示する
Kubernetes は、JSON のような構造化された形式で情報を出力することをサポートしており、これは自動化や他のツールとの統合で広く使用されています。JSON 形式でサーバーのバージョン情報を表示するには、次のコマンドを実行します。
kubectl version --output=json
このコマンドは、クライアントとサーバーの両方のバージョン情報を取得し、JSON オブジェクトとしてフォーマットします。JSON 出力は機械で読み取れ、スクリプトや外部アプリケーションで解析できます。
以下は JSON 出力の例です。
{
"clientVersion": {
"major": "1",
"minor": "26",
"gitVersion": "v1.26.0",
...
},
"serverVersion": {
"major": "1",
"minor": "26",
"gitVersion": "v1.26.0",
...
}
}
YAML 形式でサーバーのバージョン情報を表示する
Kubernetes はしばしば YAML を設定ファイルやマニフェストに使用しており、人間が読みやすい出力にするのに最適な選択肢です。YAML 形式でサーバーのバージョン情報を表示するには、次のコマンドを実行します。
kubectl version --output=yaml
このコマンドは、バージョン情報を取得し、YAML ドキュメントとしてフォーマットします。YAML は人間が読みやすく、Kubernetes のワークフローで一般的に使用されています。
たとえば、YAML 出力は次のようになる場合があります。
clientVersion:
major: "1"
minor: "26"
gitVersion: v1.26.0
---
serverVersion:
major: "1"
minor: "26"
gitVersion: v1.26.0
まとめ
この実験では、以下のことを学びました。
- Minikube を使用してローカルの Kubernetes クラスターを起動する。
kubectl versionを使用してクライアントとサーバーの両方のバージョン情報を取得する。--clientフラグを使用してクライアントのバージョンを独立して確認する。- さまざまなユースケースに対して、JSON と YAML 形式でバージョン情報をフォーマットする。
Kubernetes のバージョンの詳細を理解することは、トラブルシューティング、互換性の確認、および Kubernetes と他のツールの統合にとって重要です。これらの基本的なコマンドを使えば、Kubernetes 環境を管理し、バージョン関連の問題をデバッグする能力が向上します。練習と探索を続けましょう!


