14.10. vSphere Problem Detector Operator の使用
14.10.1. vSphere Problem Detector Operator について
vSphere Problem Detector Operator は、一般的なインストールおよびストレージに関連する正しくない設定の問題について vSphere にデプロイされたクラスターをチェックします。
Operator は openshift-cluster-storage-operator
namespace で実行され、Cluster Storage Operator がクラスターが vSphere にデプロイされたことを検知すると Cluster Storage Operator によって起動します。vSphere Problem Detector Operator は vSphere vCenter Server と通信して、クラスター内の仮想マシン、デフォルトのデータストア、および vSphere vCenter Server 設定についての他の情報を判別します。Operator は Cloud Credential Operator からの認証情報を使用して vSphere に接続します。
Operator は以下のスケジュールに基づいてチェックを実行します。
- チェックは 8 時間ごとに実行されます。
- チェックに失敗すると、Operator は 1 分、2 分、4 分、8 分などの間隔でチェックを再び実行します。Operator は、8 時間を最大の間隔とし、その範囲内で間隔を 2 倍にします。
- すべてのチェックに合格すると、スケジュールは 8 時間の間隔に戻ります。
Operator は、障害の発生後にチェックの頻度を増加させ、Operator が障害状態が修復された直後に正常な状態を報告できるようにします。Operator を手動で実行し、トラブルシューティングについての情報をすぐに確認できます。
14.10.2. vSphere Problem Detector Operator チェックの実行
vSphere Problem Detector Operator のチェックを実行するスケジュールを上書きし、チェックを即時に実行できます。
vSphere Problem Detector Operator は 8 時間ごとにチェックを自動的に実行します。ただし、Operator が起動すると、チェックがすぐに実行されます。Operator は、Cluster Storage Operator の起動時に Cluster Storage Operator によって起動し、クラスターが vSphere で実行されているかどうかを判別します。チェックをすぐに実行するには、vSphere Problem Detector Operator を 0
にスケーリングしてから、1
に戻し、vSphere Problem Detector Operator が再起動できるようにします。
前提条件
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。
手順
Operator を
0
にスケーリングします。$ oc scale deployment/vsphere-problem-detector-operator --replicas=0 \ -n openshift-cluster-storage-operator
デプロイメントがすぐにゼロにスケーリングされない場合、以下のコマンドを実行して Pod の終了を待機します。
$ oc wait pods -l name=vsphere-problem-detector-operator \ --for=delete --timeout=5m -n openshift-cluster-storage-operator
Operator を
1
にスケーリングします。$ oc scale deployment/vsphere-problem-detector-operator --replicas=1 \ -n openshift-cluster-storage-operator
古いリーダーロックを削除し、Cluster Storage Operator の新規リーダー選択を加速します。
$ oc delete -n openshift-cluster-storage-operator \ cm vsphere-problem-detector-lock
検証
- vSphere Problem Detector Operator によって生成されるイベントまたはログを表示します。イベントまたはログに最新のタイムスタンプがあることを確認します。
14.10.3. vSphere Problem Detector Operator からのイベントの表示
vSphere Problem Detector Operator が設定チェックを実行した後に、コマンドラインまたは OpenShift Container Platform Web コンソールから表示できるイベントを作成します。
手順
コマンドラインを使用してイベントを表示するには、以下のコマンドを実行します。
$ oc get event -n openshift-cluster-storage-operator \ --sort-by={.metadata.creationTimestamp}
出力例
16m Normal Started pod/vsphere-problem-detector-operator-xxxxx Started container vsphere-problem-detector 16m Normal Created pod/vsphere-problem-detector-operator-xxxxx Created container vsphere-problem-detector 16m Normal LeaderElection configmap/vsphere-problem-detector-lock vsphere-problem-detector-operator-xxxxx became leader
-
OpenShift Container Platform Web コンソールを使用してイベントを表示するには、Home
Events に移動し、Project メニューから openshift-cluster-storage-operator
を選択します。
14.10.4. vSphere Problem Detector Operator からのログの表示
vSphere Problem Detector Operator が設定チェックを実行した後に、コマンドラインまたは OpenShift Container Platform Web コンソールから表示できるログレコードを作成します。
手順
コマンドラインを使用してログを表示するには、以下のコマンドを実行します。
$ oc logs deployment/vsphere-problem-detector-operator \ -n openshift-cluster-storage-operator
出力例
I0108 08:32:28.445696 1 operator.go:209] ClusterInfo passed I0108 08:32:28.451029 1 datastore.go:57] CheckStorageClasses checked 1 storage classes, 0 problems found I0108 08:32:28.451047 1 operator.go:209] CheckStorageClasses passed I0108 08:32:28.452160 1 operator.go:209] CheckDefaultDatastore passed I0108 08:32:28.480648 1 operator.go:271] CheckNodeDiskUUID:<host_name> passed I0108 08:32:28.480685 1 operator.go:271] CheckNodeProviderID:<host_name> passed
OpenShift Container Platform Web コンソールで Operator ログを表示するには、以下の手順を実行します。
-
Workloads
Pods に移動します。 -
Projects メニューから
openshift-cluster-storage-operator
を選択します。from the -
vsphere-problem-detector-operator
Pod のリンクをクリックします。 - Pod details ページの Logs タブをクリックしてログを表示します。
-
Workloads
14.10.5. vSphere Problem Detector Operator によって実行される設定チェック
以下の表は、vSphere Problem Detector Operator が実行する設定チェックを特定します。一部のチェックでは、クラスターの設定を確認します。他のチェックは、クラスター内の各ノードの設定を確認します。
名前 | 説明 |
---|---|
| vSphere 設定のデフォルトのデータストア名が動的プロビジョニングで使用できる程度の短い名前であることを確認します。 このチェックに失敗した場合は、以下が予想されます。
このチェックに失敗した場合は、デフォルトのデータストアのより短い名前で vSphere を再設定します。 |
|
デフォルトのデータストアでボリュームを一覧表示するパーミッションを検証します。このパーミッションは、ボリュームの作成に必要です。Operator は、 このチェックに失敗した場合は、OpenShift Container Platform のインストール時に指定された vCenter アカウントに必要なパーミッションを確認します。 |
| 以下を確認してください。
|
| 最新のタスクおよびデータストアを一覧表示するパーミッションを検証します。 |
| vSphere vCenter からクラスターバージョンおよび UUID を収集します。 |
名前 | 説明 |
---|---|
|
すべての vSphere 仮想マシンが このチェックに失敗した場合は、Red Hat ナレッジベースソリューションの How to check 'disk.EnableUUID' parameter from VM in vSphere を参照してください。 |
|
すべてのノードが vSphere vCenter の $ oc get nodes -o custom-columns=NAME:.metadata.name,PROVIDER_ID:.spec.providerID,UUID:.status.nodeInfo.systemUUID このチェックに失敗した場合は、クラスター内の各ノードのプロバイダー ID の設定方法について、vSphere の製品ドキュメントを参照してください。 |
| ノードを実行する ESXi ホストのバージョンを報告します。 |
| ノードの仮想マシンのハードウェアバージョンを報告します。 |
14.10.6. ストレージクラス設定チェックについて
vSphere ストレージを使用する永続ボリュームの名前は、データストア名とクラスター ID に関連します。
永続ボリュームが作成されると、systemd
は永続ボリュームのマウントユニットを作成します。systemd
プロセスには、永続ボリュームに使用される VDMK ファイルへの完全修飾パスの長さにについて 255 文字の制限があります。
完全修飾パスは、systemd
および vSphere の命名規則に基づいています。命名規則では、以下のパターンを使用します。
/var/lib/kubelet/plugins/kubernetes.io/vsphere-volume/mounts/[<datastore>] 00000000-0000-0000-0000-000000000000/<cluster_id>-dynamic-pvc-00000000-0000-0000-0000-000000000000.vmdk
- 命名規則では、255 文字制限の内の 205 文字が必要です。
- データストア名とクラスター ID はデプロイメントで判別されます。
-
データストア名とクラスター ID は前述のパターンに代入されます。次に、パスは特殊文字をエスケープできるように
systemd-escape
コマンドで処理されます。たとえば、ハイフン文字ではエスケープ後に 4 文字を使用します。エスケープされた値は\x2d
になります。 -
systemd-escape
で処理した後に、systemd
が VDMK ファイルへの完全修飾パスにアクセスできるようにするには、パスの長さが 255 文字未満である必要があります。
14.10.7. vSphere Problem Detector Operator のメトリクス
vSphere Problem Detectorーリングスタックで使用される以下のメトリクスを公開します。
名前 | 説明 |
---|---|
| vSphere Problem Detector Operator が実行したクラスターレベルのチェックの累積数です。この数には、成功と失敗の両方が含まれます。 |
|
vSphere Problem Detector Operator が実行したクラスターレベルのチェックの失敗したチェック数です。たとえば、値 |
| 特定のバージョンを持つ ESXi ホストの数ホストが複数のノードを実行する場合は、ホストが 1 回のみカウントされることに注意してください。 |
| vSphere Problem Detector Operator が実行したノードレベルのチェックの累積数です。この数には、成功と失敗の両方が含まれます。 |
|
vSphere Problem Detector Operator が実行したノードレベルのチェックの失敗したチェック数です。たとえば、値 |
| 特定のハードウェアバージョンを持つ vSphere ノードの数。 |
| vSphere vCenter サーバーに関する情報 |