OpenShiftの健康診断: リソースとクラスターの状態をチェックしよう
0.はじめに
OpenShift Container Platform(以下、OCP)入門者向けに、OpenShiftのリソースとクラスターのステータス調査方法について解説します。
ocコマンドを使用して、リソースやクラスター全体の状態を確認することで、問題の早期発見やパフォーマンスの最適化を行うことができます。
主要なOpenShiftリソースとクラスターのステータス調査を行うためのコマンドやその実行例を挙げていきます。
- デプロイメントの確認
- Podの確認
- クラスター全体の確認
- ノードのリソース使用状況の確認
- コントロールプレーンの監視
では、次の章から具体的な解説を進めます!
1. デプロイメントの状態確認(oc get deployments、oc describe deployment コマンド)
デプロイメントは、アプリケーションのリリース管理を担当するリソースであり、Podの更新やスケーリングなどを管理します。
コマンド例:
oc get deployments
実行結果例:
NAME READY UP-TO-DATE AVAILABLE AGE
myapp 2/2 2 2 5h
- READY: 起動済みのPod数/期待されるPod数。
- UP-TO-DATE: 最新の定義に基づいて作成されたPodの数。
- AVAILABLE: ユーザーにサービスを提供できる状態のPodの数。
デプロイメントの詳細確認
oc describe deployment myapp
Webコンソールでの確認
- Webコンソールにログインし、左のメニューから「ワークロード」を選択。
- 「デプロイメント」をクリックすると、現在のプロジェクト内のデプロイメント一覧が表示されます。
2. Podの状態確認(oc get pods、oc adm top pod、oc describe pod コマンド)
Podは、コンテナを実行する最小単位です。Podの状態を確認することで、アプリケーションが正しく動作しているか、またはエラーが発生しているかを把握できます。
コマンド例:oc get pods
oc get pods
実行結果例:
NAME READY STATUS RESTARTS AGE
myapp-548b74f6d7-9kzth 1/1 Running 0 5m
myapp-548b74f6d7-pg9qw 1/1 Running 0 5m
myapp-548b74f6d7-x82qh 0/1 CrashLoopBackOff 3 5m
-
STATUS:
Running、Pending、CrashLoopBackOffなどの状態が表示されます。CrashLoopBackOffは、Podが何らかの理由で再起動を繰り返していることを示します。
コマンド例:oc adm top pod
oc adm top pod
このコマンドは、現在のプロジェクト内にあるすべてのPodのCPUとメモリ使用率を表示します。
実行結果例:
NAME CPU(cores) MEMORY(bytes)
myapp-548b74f6d7-9kzth 50m 200Mi
myapp-548b74f6d7-pg9qw 60m 220Mi
- CPU(cores): CPU使用量を表し、例えば「50m」は0.05コアのCPUを使用していることを示します。
- MEMORY(bytes): メモリ使用量をバイト単位で表示し、200Mi は200メガバイトのメモリ使用を意味します。
Podの詳細確認
oc describe pod myapp-548b74f6d7-x82qh
このコマンドで、エラーや再起動の原因を含むPodの詳細を確認できます。
Webコンソールでの確認
- Webコンソールの「ワークロード」→「Pod」をクリック。
- 各Podの状態がリスト表示され、「Running」「Pending」「CrashLoopBackOff」などの状態が視覚的に確認できます。
3. クラスター全体の状態確認(oc status コマンド)
クラスターの全体的な状態やリソースのサマリーを確認できます。アプリケーションが正常に動作しているか、未解決のエラーがあるかを素早く確認できます。
コマンド例:
oc status
実行結果例:
In project my-new-project on server https://api.openshift.example.com:6443
svc/myapp - 172.30.1.1:8080
dc/myapp deploys docker.io/openshift/hello-openshift:latest
deployment #2 deployed 2 pods on 2 nodes
View details with 'oc describe <resource>/<name>' or list everything with 'oc get all'.
- クラスター内のアプリケーションがどのようにデプロイされているかを確認できます。
- サービス(
svc/myapp)、デプロイメント(dc/myapp)などの概要が表示されます。
Webコンソールでの確認
- Webコンソールのメインダッシュボードにログインします。
- クラスターの「ステータス概要」や「ヘルスチェック」が表示され、ノードのステータス、アラート、エラーメッセージを確認できます。
4. ノードの状態確認(oc adm top nodes コマンド)
ノードは、実際にコンテナを実行する物理または仮想マシンです。oc adm top nodes コマンドを使って、各ノードのCPUやメモリの使用状況を確認できます。
コマンド例:
oc adm top nodes
実行結果例:
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
node-1 200m 10% 800Mi 25%
node-2 400m 20% 1Gi 50%
- CPU%: ノードのCPU使用率。
- MEMORY%: ノードのメモリ使用率。
Webコンソールでの確認
- Webコンソールの左メニューから「コンピュート」→「ノード」を選択。
- ノードごとのCPU、メモリ使用率がグラフィカルに表示されます。
5. コントロールプレーンの状態確認(oc get nodes と oc describe node コマンド)
コントロールプレーンは、クラスター全体を管理する重要なコンポーネントです。oc get nodes コマンドやoc get componentstatusesコマンドでノードの状態を確認し、問題が発生している場合は oc describe node で詳細を調べます。
コマンド例:
oc get nodes
実行結果例:
NAME STATUS ROLES AGE VERSION
node-1 Ready worker 5d v1.20.0+df9c838
node-2 Ready master 5d v1.20.0+df9c838
-
STATUS: ノードの状態(
Readyなら正常)。 -
ROLES:
masterやworkerなどのノードの役割。 - VERSION: Kubernetesのバージョン。
コマンド例:
oc get componentstatuses
実行結果例:
NAME STATUS MESSAGE ERROR
etcd-0 Healthy ok
controller-manager Healthy ok
scheduler Healthy ok
- STATUS: コンポーネントの状態 (Healthy は正常)。
- MESSAGE: 正常時は "ok"、異常時はエラーメッセージが表示されます。
- ERROR: エラーの詳細(エラーがない場合は空欄)。
ノードの詳細確認
oc describe node node-1
Webコンソールでの確認
- Webコンソールの「コンピュート」→「ノード」で、各ノードの状態(Ready, NotReadyなど)を確認します。
- 各ノードをクリックして詳細な状態やイベントログを確認できます。
6.おわりに
今回はOpenShiftのリソースとクラスターのステータス調査方法について理解を深めるために、以下を学びました。
-
デプロイメントの確認:
oc get deploymentsでアプリケーションのデプロイ状況を確認できます。 -
Podの確認:
oc get podsで各Podの状態やエラーを調べ、問題があればoc describe podで詳細を確認します。 -
クラスター全体の確認:
oc statusでクラスター内のリソースの概要を素早く確認できます。 -
ノードのリソース使用状況の確認:
oc adm top nodesでノードのCPUやメモリ使用率を把握し、リソースの過負荷を防ぎます。 -
コントロールプレーンの監視:
oc get nodesでノードの状態を確認し、クラスターの健全性を維持します。
これらのコマンドを使用することで、OpenShiftクラスターの健全性やリソースの状況を確認し、問題発生時のトラブルシューティングがスムーズに行えるようになります。
1回で覚えるのは難しいと思うので、何度かトライして覚えるで全然大丈夫です。
今後もOpenShiftについて解説していきます。
おわりっ!
Discussion