OpenShift Data Foundation の障害のデバッグ
ODF をデバッグして障害の根本原因を特定するための方法について説明します。
ストレージ・インスタンスをマウントするポッドが正常にデプロイされているかどうかの確認
手順に従って、ポッド・デプロイメントに関連するエラー・メッセージを確認します。
-
クラスター内のポッドをリストします。 ポッドで Running の状況が示される場合、ポッドは正常にデプロイされています。
oc get pods
-
ポッドの詳細を取得し、CLI 出力の Events セクションに表示されているエラー・メッセージがないか確認します。
oc describe pod <pod_name>
-
ポッドのログを取得し、エラー・メッセージがないか確認します。
oc logs <pod_name>
アプリ・ポッドの再始動
ポッドを再始動して再デプロイすると問題を解決できる場合があります。 手順に従って、特定のポッドを再デプロイします。
-
ポッドがデプロイメントの一部である場合は、ポッドを削除し、デプロイメントでポッドをビルドし直します。 ポッドがデプロイメントの一部ではない場合、ポッドを削除して、ポッドの構成ファイルを再適用します。
- ポッドを削除します。
出力例oc delete pod <pod_name>
pod "nginx" deleted
- 構成ファイルを再適用して、ポッドを再デプロイします。
出力例oc apply -f <app.yaml>
pod/nginx created
- ポッドを削除します。
-
ポッドを再始動しても問題が解決しない場合は、ワーカー・ノードを再ロードしてください。
-
IBM Cloud と IBM Cloud Kubernetes Service のプラグインの最新バージョンを使用していることを確認します。
ibmcloud update
ibmcloud plugin repo-plugins
ibmcloud plugin update
ストレージ・ドライバーおよびプラグインのポッドで、Running の状況が示されることの確認
手順に従って、ストレージ・ドライバーおよびプラグイン・ポッドの状況を確認し、エラー・メッセージを確認します。
-
kube-system
プロジェクトのポッドをリストします。oc get pods -n kube-system
-
ストレージ・ドライバーとプラグインのポッドに実行中 (Running) 状況が表示されない場合は、ポッドの詳細を取得して、根本原因を見つけます。 ポッドの状況によっては、以下のコマンドは失敗する場合があります。
-
ドライバー・ポッドで実行されるコンテナーの名前を取得します。
kubectl describe pod <pod_name> -n kube-system
-
ドライバー・ポッドからローカル・マシン上の
logs.txt
ファイルに、ログをエクスポートします。oc logs <pod_name> -n kube-system > logs.txt
-
ログ・ファイルを確認します。
cat logs.txt
-
-
最新のログにエラー・メッセージがないか調べます。 ODF のトラブルシューティング資料で一般的なエラーの解決手順を確認します。
oc CLI バージョンを確認して更新する
少なくともクラスターの major.minor バージョンと同じ oc
CLI バージョンを使用しないと、予期しない結果になる可能性があります。 例えば Kubernetes サポートしていませんoc
サーバー バージョンから 2
バージョン以上離れたクライアント バージョン (n +/- 2)。
-
ローカル・マシンで実行する
oc
CLI バージョンが、クラスターにインストールされている Kubernetes のバージョンと一致することを確認します。 クラスターおよびローカル・マシンにインストールされているoc
CLI バージョンを表示します。oc version
出力例:
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.32", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:53:57Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"darwin/amd64"} Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.32+IKS", GitCommit:"e15454c2216a73b59e9a059fd2def4e6712a7cf0", GitTreeState:"clean", BuildDate:"2019-04-01T10:08:07Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
CLI バージョンが一致するのは、クライアントとサーバーの
GitVersion
に同じバージョンが表示される場合です。 サーバーのバージョンの+IKS
部分は無視できます。 -
ローカルマシンとクラスターの
oc
CLIバージョンが一致しない場合は、クラスターを更新するか、 ローカルマシンに異なるCLIバージョンをインストールしてください。
ODF リソースをデバッグする
ODF リソースの詳細を表示し、コマンド出力でエラー・メッセージがないか確認します。
-
ODF クラスターの名前をリストします。
oc get ocscluster
出力例:
NAME AGE ocscluster-vpc 71d
-
ストレージ・クラスターの詳細を表示し、出力の
Events
セクションにエラー・メッセージがないか確認します。oc describe ocscluster <ocscluster-name>
-
kube-system
名前空間の ODF ポッドをリストし、ポッドがRunning
であることを確認します。oc get pods -n kube-system
出力例
NAME READY STATUS RESTARTS AGE ibm-keepalived-watcher-5g2gs 1/1 Running 0 7d21h ibm-keepalived-watcher-8l4ld 1/1 Running 0 7d21h ibm-keepalived-watcher-mhkh5 1/1 Running 0 7d21h ibm-master-proxy-static-10.240.128.10 2/2 Running 0 71d ibm-master-proxy-static-10.240.128.11 2/2 Running 0 71d ibm-master-proxy-static-10.240.128.12 2/2 Running 0 71d ibm-ocs-operator-controller-manager-55667f4d68-md4zb 1/1 Running 8 15d ibm-vpc-block-csi-controller-0 4/4 Running 0 48d ibm-vpc-block-csi-node-6gnwv 3/3 Running 0 48d ibm-vpc-block-csi-node-j2h62 3/3 Running 0 48d ibm-vpc-block-csi-node-xpwpf 3/3 Running 0 48d vpn-5b8694cdb-pll6z
-
ibm-ocs-operator-controller-manager
ポッドの詳細を表示し、出力のEvents
セクションにエラー・メッセージがないか確認します。oc describe pod <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-system
-
ibm-ocs-operator-controller-manager
のログを確認します。oc logs <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-system
-
NooBaa の詳細を表示し、出力の
Events
セクションでエラー・メッセージがないか確認します。oc describe noobaa -n openshift-storage
-
ibm-storage-metrics-agent
ポッドの詳細を表示し、出力のEvents
セクションにエラー・メッセージがないか確認します。oc get pods -n kube-system -l name=ibm-storage-metrics-agent
NAME READY STATUS RESTARTS AGE ibm-storage-metrics-agent-8685869cc6-79qzq
-
ibm-storage-metrics-agent
からのログを確認します。oc logs ibm-storage-metrics-agent-xxx -n kube-system
-
ocscluster
について説明し、エラー・メッセージの出力を確認します。oc describe ocscluster <ocscluster-name> -n openshift-storage
-
oc adm must-gather
コマンドを使用して、クラスターに関するデータを収集します。oc adm must-gather --image=registry.redhat.io/ocs4/ocs-must-gather-rhel8:latest --dest-dir=ocs_mustgather
-
ワーカー・ノード上のローカル・ボリュームを使用するクラシック・クラスターまたは Satellite クラスターの場合は、
osd-device-path
パラメーターとmon-device-path
パラメーターに使用したボリュームのdisk-by-id
がワーカー・ノード上に存在することを確認します。 これらのボリューム ID の取得方法について詳しくは、デバイス詳細の収集を参照してください