🩺

OpenShiftの健康診断: リソースとクラスターの状態をチェックしよう

2024/10/27に公開

0.はじめに

OpenShift Container Platform(以下、OCP)入門者向けに、OpenShiftのリソースとクラスターのステータス調査方法について解説します。

ocコマンドを使用して、リソースやクラスター全体の状態を確認することで、問題の早期発見やパフォーマンスの最適化を行うことができます。

主要なOpenShiftリソースとクラスターのステータス調査を行うためのコマンドやその実行例を挙げていきます。

  • デプロイメントの確認
  • Podの確認
  • クラスター全体の確認
  • ノードのリソース使用状況の確認
  • コントロールプレーンの監視

では、次の章から具体的な解説を進めます!

1. デプロイメントの状態確認(oc get deploymentsoc 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コンソールでの確認

  1. Webコンソールにログインし、左のメニューから「ワークロード」を選択。
  2. 「デプロイメント」をクリックすると、現在のプロジェクト内のデプロイメント一覧が表示されます。

2. Podの状態確認(oc get podsoc adm top podoc 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: RunningPendingCrashLoopBackOff などの状態が表示されます。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コンソールでの確認

  1. Webコンソールの「ワークロード」→「Pod」をクリック。
  2. 各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コンソールでの確認

  1. Webコンソールのメインダッシュボードにログインします。
  2. クラスターの「ステータス概要」や「ヘルスチェック」が表示され、ノードのステータス、アラート、エラーメッセージを確認できます。

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コンソールでの確認

  1. Webコンソールの左メニューから「コンピュート」→「ノード」を選択。
  2. ノードごとのCPU、メモリ使用率がグラフィカルに表示されます。

5. コントロールプレーンの状態確認(oc get nodesoc 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: masterworker などのノードの役割。
  • 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コンソールでの確認

  1. Webコンソールの「コンピュート」→「ノード」で、各ノードの状態(Ready, NotReadyなど)を確認します。
  2. 各ノードをクリックして詳細な状態やイベントログを確認できます。

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