Block Storage for VPC メトリックのデバッグ
モニター・ダッシュボードで Block Storage for VPC メトリックを表示しようとしても、メトリックにデータが取り込まれません。
以下のいずれかの理由により、ダッシュボードでメトリックの取り込みに失敗する場合があります。
- 監視したいPVCがマウントされていない可能性があります。 メトリックは、ポッドにマウントされている PVC についてのみ取り込まれます。
- コンソール関連の問題がある可能性があり、CLIでストレージ・メトリクスを手動で表示して確認できます。
PVC がマウントされていることを確認します。 問題が解決しない場合は、CLI でメトリックを手動で表示して、原因がコンソールの問題に関連しているかどうかを判別します。
-
PVC の説明を取得します。 出力の**「使用者」**行にポッドの名前が取り込まれている場合、PVC がマウントされています。
oc describe pvc <pvc_name>出力例
Name: my-pvc Namespace: default StorageClass: ibmc-vpc-block-5iops-tier Status: Bound Volume: pvc-a11a11a1-111a-111a-a1a1-aaa111aa1a1a Labels: <none> Annotations: pv.kubernetes.io/bind-completed: yes pv.kubernetes.io/bound-by-controller: yes volume.beta.kubernetes.io/storage-provisioner: vpc.block.csi.ibm.io Finalizers: [kubernetes.io/pvc-protection] Capacity: 10Gi Access Modes: RWO VolumeMode: Filesystem Used By: my-pod-11a1a1a1a1-1a11a Events: <none> -
PVC がポッドにマウントされていない場合は、Block Storage for VPC のセットアップの手順を確認し、PVC をポッドにマウントします。 その後、メトリックの表示を再試行してください。
-
PVC がマウントされている場合は、 Block Storage for VPC メトリックを手動で検証 してから、 サポートの問題をオープン してください。 CLI での手動検証のステップにより、メトリックを表示できますが、コンソールに取り込まれないメトリックのソリューションではありません。 ただし、メトリックを手動で検証できる場合は、問題をオープンする必要があるコンソールの問題があることを示しています。
CLI でのストレージ・メトリックの手動表示
ストレージ・メトリックがモニター・ダッシュボードに表示されない場合は、CLI で手動で表示できます。 ストレージ・メトリックの手動検証は一時的な回避策であり、メトリックを表示するための永続的なモニター・ソリューションではないことに注意してください。 以下のステップを完了した後、ダッシュボードではなく CLI でメトリクスを手動で表示できる場合は、コンソールに問題があり、 [サポート・アイシュー] (/docs/openshift?topic=openshift-get-help.
以下のステップを完了した後、デバッグ中に作成したリソースを必ず削除してください。
-
カスタム
clusterRole構成を作成してデプロイします。 この例では、clusterRoleの名前はtest-metrics-readerです。apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: test-metrics-reader rules: - nonResourceURLs: - "/metrics" verbs: - get - apiGroups: - "" resources: - nodes/metrics verbs: - getoc apply -f <file_name> -
サービス・アカウントを作成します。 この例では、サービス・アカウントの名前は
test-saです。oc create sa test-sa -
clusterRoleBindingをclusterRoleに追加します。oc create clusterrolebinding test-metrics-reader --clusterrole test-metrics-reader --serviceaccount=default:test-sa -
ノードをリストし、メトリックを収集するノードの名前と IP をメモします。
oc get nodes出力例
NAME STATUS ROLES AGE VERSION 10.111.1.11 Ready <none> 1d v1.35+IKS -
ポッドをノードにデプロイするための yaml ファイルを作成します。 作成したサービス・アカウントとノード IP アドレスを必ず指定してください。
apiVersion: v1 kind: Pod metadata: name: testpod spec: nodeName: 10.111.1.111 containers: - image: nginx name: nginx serviceAccountName: test-saoc apply -f <file_name> -
ポッド内からサービス・アカウント・トークンを取得します。
-
ポッドにログインします。
kubectl exec testpod -it -- bash -
以下のコマンドを実行して、トークンを取得します。 出力はありません。
token=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
-
-
まだポッドにログインしている間に、コマンドを実行してストレージ・メトリックを表示します。 必ずノード IP アドレスを指定してください。
curl -k -H "authorization: bearer <token> https://<node_IP>:10250/metrics | grep kubelet_volume_stats -
端末出力でメトリックを表示します。 メトリクスが出力されるまで数分待つ必要があるかもしれません。 それでもメトリックを表示できない場合は、 サポートの問題をオープンしてください。
-
メトリックの表示を終了し、問題がダッシュボードとメトリック・エージェントのどちらに関連しているかを判別したら、前のステップで作成した構成とリソースを削除します。
このステップは省略しないでください。
- ポッドを終了します。
exit - ポッドを削除します。
oc delete pod testpod clusterRoleBindingを削除します。oc delete clusterrolebinding test-metrics-reader- サービス・アカウントを削除します。
oc delete sa test-sa - クラスター役割を削除します。
oc delete clusterrole test-metrics-reader