永続ストレージの障害のデバッグ
永続ストレージをデバッグするためのオプションを確認し、障害の根本原因を探します。
ストレージ・インスタンスをマウントするポッドが正常にデプロイされているかどうかの確認
-
クラスター内のポッドをリストします。 ポッドで Running の状況が示される場合、ポッドは正常にデプロイされています。
oc get pods
-
ポッドの詳細を取得し、CLI 出力の Events セクションにエラーが表示されているかどうかを確認します。
oc describe pod <pod_name>
-
アプリケーションのログを取得し、エラー・メッセージが表示されるかどうかを確認します。
oc logs <pod_name>
アプリ・ポッドの再始動
-
ポッドがデプロイメントの一部である場合は、ポッドを削除し、デプロイメントでポッドをビルドし直します。 ポッドがデプロイメントの一部ではない場合、ポッドを削除して、ポッドの構成ファイルを再適用します。
oc delete pod <pod_name>
oc apply -f <app.yaml>
-
ポッドを再始動しても問題が解決しない場合は、ワーカー・ノードを再ロードしてください。
-
IBM Cloud と IBM Cloud Kubernetes Service のプラグインの最新バージョンを使用していることを確認します。
ibmcloud update
ibmcloud plugin repo-plugins
ストレージ・ドライバーおよびプラグインのポッドで、Running の状況が示されることの確認
kube-system
プロジェクトのポッドをリストします。oc get pods -n kube-system
- ストレージ・ドライバーとプラグインのポッドに実行中 (Running) 状況が表示されない場合は、ポッドの詳細を取得して、根本原因を見つけます。 ポッドの状況によっては、以下のすべてのコマンドを実行できない場合があります。
- ドライバー・ポッドで実行されるコンテナーの名前を取得します。
3 つのコンテナーが含まれている Block Storage for VPC の出力例:kubectl get pod <pod_name> -n kube-system -o jsonpath="{.spec['containers','initContainers'][*].name}" | tr -s '[[:space:]]' '\n'
Block Storage for Classicの出力例:csi-provisioner csi-attacher iks-vpc-block-driver
ibmcloud-block-storage-driver-container
- ドライバー・ポッドからローカル・マシン上の
logs.txt
ファイルに、ログをエクスポートします。 ドライバーのコンテナー名を指定してください。oc logs <pod_name> -n kube-system -c <container_name> > logs.txt
- ログ・ファイルを確認します。
cat logs.txt
- ドライバー・ポッドで実行されるコンテナーの名前を取得します。
- ** コマンドの CLI 出力の **Events
oc describe pod
セクションと最新のログを分析して、エラーの根本原因を探します。
PVC が正常にプロビジョンされているかどうかの確認
-
PVC の状態を確認します。 PVC で Bound の状況が示される場合、PVC は正常にプロビジョンされています。
oc get pvc
-
PVC の状態で Pending が示される場合は、エラーを取得して、PVC が保留中のままである理由を確認します。
oc describe pvc <pvc_name>
-
PVC の作成中に発生する可能性がある一般的なエラーを確認します。
-
PVC をアプリケーションにマウントするときに発生する可能性がある一般的なエラーを確認します。
-
ローカル・マシンで実行する
kubectl
CLI バージョンが、クラスターにインストールされている Kubernetes のバージョンと一致することを確認します。 少なくともクラスターの major.minor バージョンと同じkubectl
CLI バージョンを使用しないと、予期しない結果になる可能性があります。 例えば、[ Kubernetes は、サーバーバージョンから2つ以上のバージョンが異なるkubectl
クライアントバージョン(n +/- 2)をサポートしていません。- クラスターおよびローカル・マシンにインストールされている
kubectl
CLI バージョンを表示します。
出力例oc version
CLI バージョンが一致するのは、クライアントとサーバーの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"}
GitVersion
に同じバージョンが表示される場合です。 サーバーのバージョンの+IKS
部分は無視できます。 - ローカル・マシンとクラスターの
kubectl
CLI のバージョンが一致しない場合は、クラスターを更新するか、ローカル・マシンに別の CLI バージョンをインストールします。
- クラスターおよびローカル・マシンにインストールされている
-
Block Storage for VPC の場合は、最新バージョンのアドオンがあることを確認します。
-
クラシック・ブロック・ストレージ、オブジェクト・ストレージ、および Portworx の場合のみ: プラグインの Helm チャートの最新バージョンをインストールしたことを確認します。
ブロック・ストレージおよびオブジェクト・ストレージ:
- Helm チャート・リポジトリーを更新します。
helm repo update
- リポジトリーの Helm チャートをリストします。
クラシック・ブロック・ストレージの場合:
出力例helm search repo iks-charts | grep block-storage-plugin
オブジェクト・ストレージの場合:iks-charts-stage/ibmcloud-block-storage-plugin 1.5.0 A Helm chart for installing ibmcloud block storage plugin iks-charts/ibmcloud-block-storage-plugin 1.5.0 A Helm chart for installing ibmcloud block storage plugin
出力例helm search repo ibm-charts | grep object-storage-plugin
ibm-charts/ibm-object-storage-plugin 1.0.9 1.0.9 A Helm chart for installing ibmcloud object storage plugin
- クラスターにインストールされた Helm チャートをリストし、インストールしたバージョンと使用可能なバージョンを比較します。
helm list --all-namespaces
- より新しいバージョンが使用可能な場合は、そのバージョンをインストールします。 手順については、IBM Cloud Block Storage プラグインの更新および IBM Cloud Object Storage プラグインの更新を参照してください。
- Helm チャート・リポジトリーを更新します。
Portworx
-
利用可能な 最新の Helm チャートバージョンを見つけます。
-
クラスターにインストールされた Helm チャートをリストし、インストールしたバージョンと使用可能なバージョンを比較します。
helm list --all-namespaces
-
より新しいバージョンが使用可能な場合は、そのバージョンをインストールします。 手順については、クラスター内の Portworx の更新を参照してください。
OpenShift Data Foundation
ODF リソースの詳細を表示し、コマンド出力でエラー・メッセージがないか確認します。
- ODF クラスターの名前をリストします。
出力例:oc get ocscluster
NAME AGE ocscluster-vpc 71d
- ストレージ・クラスターの詳細を表示し、出力の
Events
セクションにエラー・メッセージがないか確認します。oc describe ocscluster <ocscluster-name>
kube-system
名前空間のポッドをリストし、Running
であることを確認します。oc get pods -n kube-system
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