はじめに
Kubernetes は、コンテナ化されたアプリケーションの展開、スケーリング、管理を自動化するコンテナオーケストレーション プラットフォームです。この実験では、cluster-info コマンドを使用して Kubernetes クラスターを調べる方法を学びます。実験が終了すると、Kubernetes クラスターを起動する方法、必須のクラスター情報を取得する方法、内部コンポーネントを調べる方法、および API サーバーの接続性をテストする方法を理解しているでしょう。
この実験は初心者向けに作成されており、Kubernetes の事前経験は必要ありません。
Kubernetes クラスターを起動する
Kubernetes クラスターには実行環境が必要です。この実験では、Kubernetes クラスターをローカルで実行できるツールである Minikube を使用します。以下の手順に従ってください。
ターミナルを開き、
/home/labex/projectディレクトリにいることを確認します。cd ~/projectMinikube クラスターを起動します。
minikube start- Minikube は単一ノードの Kubernetes クラスターを作成します。
- このプロセスにはシステムによって数分かかる場合があります。初期化中に、さまざまな Kubernetes コンポーネントが設定されます。

基本的なクラスター情報を取得する
Minikube が実行されているときは、kubectl cluster-info コマンドを使用してクラスターに関する情報を表示します。次のコマンドを実行します。
kubectl cluster-info
- API サーバー の URL は、クラスターとやり取りするための主要なエンドポイントです。
- CoreDNS は、クラスター内のサービスの発見と DNS 解決を担当します。
出力例:
Kubernetes control plane is running at https://192.168.49.2:8443
CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
https://192.168.49.2:8443は、Kubernetes API サーバーの URL です。ここにすべてのkubectlコマンドが送信されます。- CoreDNS サービスは、Kubernetes がサービスとポッドのドメイン名を解決するのを支援します。
クラスターコンポーネントを詳細に調べる
クラスターとその内部コンポーネントをより深く理解するには、次のコマンドを使用します。
kubectl cluster-info dump
このコマンドは、重要なコンポーネントに関する詳細情報を提供します。
- etcd:クラスターのすべてのデータを格納するキーバリューストア。
- kube-apiserver:Kubernetes API 要求のエントリポイント。
- kube-scheduler:利用可能なノードにワークロード(ポッド)を割り当てます。
- kube-controller-manager:クラスターの状態を維持します(たとえば、必要な数のポッド レプリカが実行されていることを確認します)。
出力例:
このコマンドは、Kubernetes システム コンポーネントの構成と状態を詳細に記載した冗長な出力を生成します。分析を容易にするために、出力をファイルにリダイレクトできます。
kubectl cluster-info dump > cluster-details.txt
これにより、出力が現在のディレクトリの cluster-details.txt に保存されます。
クラスター内のノードを表示する
ノードは、Kubernetes でワークロードを実行するマシンです。クラスター内のノードを一覧表示するには、次のコマンドを実行します。
kubectl get nodes
- ノード名(たとえば、
minikube)は、マシンを識別します。 - ステータス(
Ready)は、ノードが正常であり、ワークロードを実行できることを示します。 - Minikube クラスターでは、ノードはコントロール プレーンとワーカー ノードの両方として機能します。
出力例:
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 5m v1.20.0
API サーバーへのアクセスをテストする
API サーバーは、Kubernetes コントロール プレーンの重要なコンポーネントです。次のコマンドを実行することで、そのアクセス可能性をテストできます。
curl $(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}') --insecure
- このコマンドは API サーバーの URL を取得し、そこに対して簡単な要求を行います。
--insecureフラグは、SSL 証明書の検証をバイパスします。これは、このローカル設定では許容されます。
出力例:
API サーバーにアクセスできる場合、レスポンスは次のようになります。
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {},
"status": "Failure",
"message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
"reason": "Forbidden",
"details": {},
"code": 403
}
このレスポンスは、API サーバーが実行されていることを確認しますが、認証が不足しているためアクセスが拒否されます。これは予想される結果です。
まとめ
この実験では、以下のことを学びました。
- Minikube を使って Kubernetes クラスターを起動する方法。
kubectl cluster-infoを使ってクラスターの詳細を取得する方法。kubectl cluster-info dumpを使ってクラスターコンポーネントを詳細に調べる方法。kubectl get nodesを使ってクラスター内のノードを一覧表示する方法。curlコマンドを使って API サーバーの接続性をテストする方法。
この実践的な経験は、Kubernetes クラスターを理解して探索するための基礎を提供しました。これらのコマンドは、Kubernetes 環境のデバッグと管理に欠かせないものです。
次のステップ:
- Kubernetes 内のポッドとワークロードを探索する。
- アプリケーションを公開するためのサービスを作成する方法を学ぶ。
- クラスター内のワークロードのスケーリングを試す。
練習を続け、楽しく学びましょう!


