第8章 メータリングのトラブルシューティングおよびデバッグ
メータリングは非推奨の機能です。非推奨の機能は依然として OpenShift Container Platform に含まれており、引き続きサポートされますが、本製品の今後のリリースで削除されるため、新規デプロイメントでの使用は推奨されません。
OpenShift Container Platform で非推奨となったか、または削除された主な機能の最新の一覧については、OpenShift Container Platform リリースノートの 非推奨および削除された機能セクションを参照してください。
以下のセクションを参照して、メータリングに関連する特定の問題のトラブルシューティングとデバッグを行ってください。
このセクションの情報に加えて、次のトピックを確認してください。
8.1. メータリングのトラブルシューティング
メータリングに関連する一般的な問題として、Pod が起動に失敗する問題があります。Pod はリソースがないか、または StorageClass
または Secret
リソースなど、存在しないリソースへの依存関係がある場合に起動に失敗する可能性があります。
8.1.1. 十分なコンピュートリソースがない
メータリングのインストールまたは実行時に、コンピュートリソースがないという問題がよく生じます。クラスターが拡大し、より多くのレポートが作成されると、レポート Operator Pod にはより多くのメモリーが必要になります。メモリー使用量が Pod の制限に達すると、クラスターは Pod のメモリー不足 (OOM) を考慮し、これを OOMKilled
ステータスで終了します。メータリングにインストールの前提条件で説明されている最小限のリソース要件が適用されていることを確認します。
メータリング Operator は、クラスターの負荷に基づいてレポート Operator を自動スケーリングしません。そのため、クラスターが大きくなると、レポート Operator Pod の CPU 使用率は増加しません。
問題がリソースまたはスケジュールに関連するかどうかを判別するには、Kubernetes ドキュメントの Managing Resources for Containers にあるトラブルシューティングの指示に従ってください。
コンピュートリソースがないために問題のトラブルシューティングを行うには、openshift-metering
namespace 内で以下を確認します。
前提条件
現在の位置は
openshift-metering
namespace である。以下を実行してopenshift-metering
namespace に切り替えます。$ oc project openshift-metering
手順
完了しなかったメータリング
Report
リソースの有無を確認し、ReportingPeriodUnmetDependencies
のステータスを表示します。$ oc get reports
出力例
NAME QUERY SCHEDULE RUNNING FAILED LAST REPORT TIME AGE namespace-cpu-utilization-adhoc-10 namespace-cpu-utilization Finished 2020-10-31T00:00:00Z 2m38s namespace-cpu-utilization-adhoc-11 namespace-cpu-utilization ReportingPeriodUnmetDependencies 2m23s namespace-memory-utilization-202010 namespace-memory-utilization ReportingPeriodUnmetDependencies 26s namespace-memory-utilization-202011 namespace-memory-utilization ReportingPeriodUnmetDependencies 14s
NEWEST METRIC
の値がレポートの終了日よりも小さいReportDataSource
リソースを確認します。$ oc get reportdatasource
出力例
NAME EARLIEST METRIC NEWEST METRIC IMPORT START IMPORT END LAST IMPORT TIME AGE ... node-allocatable-cpu-cores 2020-04-23T09:14:00Z 2020-08-31T10:07:00Z 2020-04-23T09:14:00Z 2020-10-15T17:13:00Z 2020-12-09T12:45:10Z 230d node-allocatable-memory-bytes 2020-04-23T09:14:00Z 2020-08-30T05:19:00Z 2020-04-23T09:14:00Z 2020-10-14T08:01:00Z 2020-12-09T12:45:12Z 230d ... pod-usage-memory-bytes 2020-04-23T09:14:00Z 2020-08-24T20:25:00Z 2020-04-23T09:14:00Z 2020-10-09T23:31:00Z 2020-12-09T12:45:12Z 230d
多数の Pod の再起動のについて、
reporting-operator
Pod
リソースの正常性を確認します。$ oc get pods -l app=reporting-operator
出力例
NAME READY STATUS RESTARTS AGE reporting-operator-84f7c9b7b6-fr697 2/2 Running 542 8d 1
- 1
- レポート Operator Pod は高い率で再起動します。
reporting-operator
Pod
リソースでOOMKilled
の終了について確認します。$ oc describe pod/reporting-operator-84f7c9b7b6-fr697
出力例
Name: reporting-operator-84f7c9b7b6-fr697 Namespace: openshift-metering Priority: 0 Node: ip-10-xx-xx-xx.ap-southeast-1.compute.internal/10.xx.xx.xx ... Ports: 8080/TCP, 6060/TCP, 8082/TCP Host Ports: 0/TCP, 0/TCP, 0/TCP State: Running Started: Thu, 03 Dec 2020 20:59:45 +1000 Last State: Terminated Reason: OOMKilled 1 Exit Code: 137 Started: Thu, 03 Dec 2020 20:38:05 +1000 Finished: Thu, 03 Dec 2020 20:59:43 +1000
- 1
- レポート Operator Pod は OOM による強制終了により終了しています。
reporting-operator Pod メモリー制限の引き上げ
Pod の再起動や OOM による強制終了イベントが増加している場合、レポート Operator Pod に設定された現在のメモリー制限を確認できます。メモリー制限を増やすと、レポート Operator Pod はレポートデータソースを更新できます。必要な場合は、MeteringConfig
リソースのメモリー制限を 25% - 50% 引き上げます。
手順
reporting-operator
Pod
リソースの現在のメモリー制限を確認します。$ oc describe pod reporting-operator-67d6f57c56-79mrt
出力例
Name: reporting-operator-67d6f57c56-79mrt Namespace: openshift-metering Priority: 0 ... Ports: 8080/TCP, 6060/TCP, 8082/TCP Host Ports: 0/TCP, 0/TCP, 0/TCP State: Running Started: Tue, 08 Dec 2020 14:26:21 +1000 Ready: True Restart Count: 0 Limits: cpu: 1 memory: 500Mi 1 Requests: cpu: 500m memory: 250Mi Environment: ...
- 1
- レポート Operator Pod の現在のメモリー制限。
MeteringConfig
リソースを編集してメモリー制限を更新します。$ oc edit meteringconfig/operator-metering
MeteringConfig
リソース例kind: MeteringConfig metadata: name: operator-metering namespace: openshift-metering spec: reporting-operator: spec: resources: 1 limits: cpu: 1 memory: 750Mi requests: cpu: 500m memory: 500Mi ...
- 1
MeteringConfig
リソースのresources
フィールド内でメモリー制限を追加または引き上げます。
注記メモリー制限が引き上げられた後でも引き続き OOM で強制終了された多数のイベントがある場合は、別の問題がレポートを保留状態にしていることを示唆している可能性があります。
8.1.2. StorageClass リソースが設定されない
メータリングでは、デフォルトの StorageClass
リソースが動的プロビジョニングに設定されている必要があります。
クラスターに設定された StorageClass
があるかどうかをチェックする方法、デフォルトの設定方法、およびメータリングをデフォルト以外のストレージクラス を使用するように設定する方法についての詳細は、メータリングの設定方法についてのドキュメントを参照してください。
8.1.3. シークレットが正しく設定されていない
メータリングに関連する一般的な問題として、永続ストレージの設定時に誤ったシークレットが指定されることがあります。設定ファイルのサンプルを確認し、ストレージプロバイダーのガイドラインに従ってシークレットを作成することを確認してください。