はじめに
Kubernetes の describe コマンドは、Kubernetes リソースに関する詳細情報を表示するための強力なツールです。describe コマンドを使用すると、リソースの状態、イベント、ラベル、アノテーションなどの情報を表示できます。これは、Kubernetes クラスタのトラブルシューティングに役立ちます。
Minikube を起動してクラスタを検証する
Kubernetes を使用する前に、稼働しているクラスタが必要です。Minikube は軽量のローカル Kubernetes クラスタを提供します。
プロジェクト ディレクトリに移動する:
ターミナルを開き、デフォルトの作業ディレクトリに移動します。
cd /home/labex/projectMinikube を起動する:
クラスタを初期化するために Minikube を起動します。
minikube start- Minikube は単一ノードの Kubernetes クラスタを作成します。この手順には数分かかる場合があります。
Minikube の状態を確認する:
Minikube が正常に起動したかどうかを確認します。
minikube statusapiserverやkubeletなどのコンポーネントがRunningと表示されていることを確認します。Kubernetes の設定を確認する:
kubectlが Minikube クラスタに接続されていることを確認します。kubectl cluster-infoこれにより、API サーバーやその他のコンポーネントに関する詳細が表示されます。
Minikube が起動に失敗した場合は、minikube delete を使用してリセットして再度試してください。
kubectl describe コマンドを調べる
kubectl describe コマンドは、特定のリソースまたはリソースのグループに関する詳細情報を表示するために使用されます。このコマンドを使用すると、リソースの構成、状態、および関連するイベントに関する洞察が得られます。
kubectl describe の利用可能なオプションを表示するには、次のコマンドを実行します。
kubectl describe -h
次の出力が表示されます。
特定のリソースまたはリソースのグループの詳細を表示します。
選択されたリソースの詳細な説明を表示します。これには、イベントやコントローラーなどの関連リソースも含まれます。
次のように、名前、その種類のすべてのオブジェクト、名前の接頭辞、またはラベル セレクタを指定して、単一のオブジェクトを選択できます。たとえば:
$ kubectl describe TYPE NAME_PREFIX
は、まず TYPE と NAME_PREFIX の完全一致を確認します。そのようなリソースが存在しない場合、NAME_PREFIX で始まる名前を持つすべてのリソースの詳細が出力されます。
サポートされているリソースの完全な一覧については、「kubectl api-resources」を使用してください。
例:
## ノードを記述する
kubectl describe nodes kubernetes-node-emt8.c.myproject.internal
## ポッドを記述する
kubectl describe pods/nginx
## "pod.json" で型と名前によって識別されるポッドを記述する
kubectl describe -f pod.json
## すべてのポッドを記述する
kubectl describe pods
## ラベル name=myLabel によるポッドを記述する
kubectl describe po -l name=myLabel
## 'frontend' リプリケーション コントローラーによって管理されるすべてのポッドを記述する
## (rc で作成されたポッドは、ポッド名の接頭辞として rc の名前を持ちます)
kubectl describe pods frontend
ポッドを記述する
この手順では、Kubernetes のポッドに関する情報を表示するために describe コマンドをどのように使用するかを学びます。
レプリカのテンプレートとして使用される単純なポッドを作成します。次の内容で
myapp-pod.yamlという名前のファイルを作成します。apiVersion: v1 kind: Pod metadata: name: myapp-pod spec: containers: - name: myapp-container image: nginx ports: - containerPort: 80次のコマンドを使用してポッドを作成します。
kubectl apply -f myapp-pod.yaml次に、ポッドを記述します。
kubectl describe pod myapp-pod
このコマンドは、指定されたポッドに関する詳細情報を取得します。これには、状態、ラベル、アノテーション、イベントなどが含まれます。
デプロイメントを記述する
この手順では、Kubernetes のデプロイメントに関する情報を表示するために describe コマンドをどのように使用するかを学びます。
次の内容で
myapp-deployment.yamlという名前のファイルを作成します。apiVersion: apps/v1 kind: Deployment metadata: name: myapp-deployment spec: replicas: 1 selector: matchLabels: app: myapp-deployment template: metadata: labels: app: myapp-deployment spec: containers: - name: myapp-container image: nginx:latest ports: - containerPort: 80次のコマンドを使用してデプロイメントを作成します。
kubectl apply -f myapp-deployment.yamlデプロイメントを記述します。
kubectl describe deployment myapp-deployment
このコマンドは、指定されたデプロイメントに関する詳細情報を取得します。これには、状態、ラベル、アノテーション、イベントなどが含まれます。
サービスを記述する
この手順では、Kubernetes のサービスに関する情報を表示するために describe コマンドをどのように使用するかを学びます。
次の内容で
myapp-service.yamlという名前のファイルを作成します。apiVersion: v1 kind: Service metadata: name: myapp-service spec: selector: app: myapp-deployment ports: - protocol: TCP port: 80 targetPort: 80次のコマンドを使用してサービスを作成します。
kubectl apply -f myapp-service.yaml次のコマンドを使用してサービスを記述します。
kubectl describe service myapp-service
このコマンドは、指定されたサービスに関する詳細情報を取得します。これには、状態、ラベル、アノテーション、イベントなどが含まれます。
まとめ
この実験では、Kubernetes の describe コマンドを使用して、Kubernetes リソースに関する詳細情報を表示する方法を学びました。また、ポッド、デプロイメント、およびサービスを記述する方法も学びました。


