OpenShiftの健康診断: リソースとクラスターの状態をチェックしよう
0.はじめに
OpenShift Container Platform(以下、OCP)入門者向けに、OpenShiftのリソースとクラスターのステータス調査方法について解説します。
oc
コマンドを使用して、リソースやクラスター全体の状態を確認することで、問題の早期発見やパフォーマンスの最適化を行うことができます。
主要なOpenShiftリソースとクラスターのステータス調査を行うためのコマンドやその実行例を挙げていきます。
- デプロイメントの確認
- Podの確認
- クラスター全体の確認
- ノードのリソース使用状況の確認
- コントロールプレーンの監視
では、次の章から具体的な解説を進めます!
oc get deployments
、oc describe deployment
コマンド)
1. デプロイメントの状態確認(デプロイメントは、アプリケーションのリリース管理を担当するリソースであり、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コンソールにログインし、左のメニューから「ワークロード」を選択。
- 「デプロイメント」をクリックすると、現在のプロジェクト内のデプロイメント一覧が表示されます。
oc get pods
、oc adm top pod
、oc describe pod
コマンド)
2. 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」などの状態が視覚的に確認できます。
oc status
コマンド)
3. クラスター全体の状態確認(クラスターの全体的な状態やリソースのサマリーを確認できます。アプリケーションが正常に動作しているか、未解決のエラーがあるかを素早く確認できます。
コマンド例:
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コンソールのメインダッシュボードにログインします。
- クラスターの「ステータス概要」や「ヘルスチェック」が表示され、ノードのステータス、アラート、エラーメッセージを確認できます。
oc adm top nodes
コマンド)
4. ノードの状態確認(ノードは、実際にコンテナを実行する物理または仮想マシンです。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、メモリ使用率がグラフィカルに表示されます。
oc get nodes
と oc describe node
コマンド)
5. コントロールプレーンの状態確認(コントロールプレーンは、クラスター全体を管理する重要なコンポーネントです。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