Block Storage for Classic の障害のデバッグ
Block Storage for Classic をデバッグするオプションを確認し、障害の根本原因を探します。
ストレージ・インスタンスをマウントするポッドが正常にデプロイされているかどうかの確認
手順に従って、ポッド・デプロイメントに関連するエラー・メッセージを確認します。
-
クラスター内のポッドをリストします。 ポッドで Running の状況が示される場合、ポッドは正常にデプロイされています。
oc get pods -
ポッドの詳細を取得し、CLI 出力の Events セクションに表示されているエラー・メッセージがないか確認します。
oc describe pod <pod_name> -
ポッドのログを取得し、エラー・メッセージがないか確認します。
oc logs <pod_name> -
Block Storage for Classic のトラブルシューティング資料で一般的なエラーの解決手順を確認します。
アプリ・ポッドの再始動
ポッドを再始動して再デプロイすると問題を解決できる場合があります。 手順に従って、特定のポッドを再デプロイします。
-
ポッドがデプロイメントの一部である場合は、ポッドを削除し、デプロイメントでポッドをビルドし直します。 ポッドがデプロイメントの一部ではない場合、ポッドを削除して、ポッドの構成ファイルを再適用します。
- ポッドを削除します。
oc delete pod <pod_name> ``` 出力例 ```sh {: screen} pod "nginx" deleted ``` 2. 構成ファイルを再適用して、ポッドを再デプロイします。 ```sh {: pre} oc apply -f <app.yaml> ``` 出力例 ```sh {: pre} pod/nginx created ``` -
ポッドを再始動しても問題が解決しない場合は、ワーカー・ノードを再ロードします。
-
IBM Cloud と IBM Cloud Kubernetes Service のプラグインの最新バージョンを使用していることを確認します。
ibmcloud updateibmcloud plugin repo-pluginsibmcloud plugin update
ストレージ・ドライバーおよびプラグインのポッドで、Running の状況が示されることの確認
手順に従って、ストレージ・ドライバーおよびプラグイン・ポッドの状況を確認し、エラー・メッセージを確認します。
-
kube-systemプロジェクトのポッドをリストします。oc get pods -n kube-system -
ストレージ・ドライバーとプラグインのポッドに実行中 (Running) 状況が表示されない場合は、ポッドの詳細を取得して、根本原因を見つけます。 ポッドの状況によっては、以下のコマンドは失敗する場合があります。
- ドライバー・ポッドで実行されるコンテナーの名前を取得します。
kubectl describe pod POD_NAME -n kube-system ``` 2. ドライバー・ポッドからローカル・マシン上の `logs.txt` ファイルに、ログをエクスポートします。 ```sh {: pre} oc logs <pod_name> -n kube-system > logs.txt ``` 3. ログ・ファイルを確認します。 ```sh {: pre} cat logs.txt ``` -
ストレージ・ドライバーとプラグインのポッドに実行中 (Running) 状況が表示されない場合は、ポッドの詳細を取得して、根本原因を見つけます。 ポッドの状況によっては、以下のすべてのコマンドを実行できない場合があります。
- ドライバー・ポッドで実行されるコンテナーの名前を取得します。
kubectl get pod ibm-vpc-block-csi-controller-0 -n kube-system -o jsonpath="{.spec['containers','initContainers'][*].name}" | tr -s '[[:space:]]' '\n' ``` **Block Storage for VPC の出力例** ```sh {: screen} csi-provisioner csi-attacher liveness-probe iks-vpc-block-driver ``` 2. ドライバー・ポッドのコンテナー・ログをローカル・マシンに `logs.txt` ファイルとしてエクスポートします。 ```sh {: pre} oc logs <pod_name> -n kube-system -c <container_name> > logs.txt ``` -
最新のログにエラー・メッセージがないか調べます。 Block Storage for Classic のトラブルシューティング資料で一般的なエラーの解決手順を確認します。
PVC が正常にプロビジョンされているかどうかの確認
手順に従って、PVC の状況を確認し、エラー・メッセージを確認します。
-
PVC の状況を確認します。 PVC で Bound の状況が示される場合、PVC は正常にプロビジョンされています。
oc get pvc-
PVC の状況に Bound と表示される場合、PVC は正常にプロビジョンされています。
出力例
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE silver-pvc Bound pvc-4b881a6b-ada8-4a44-b568-fe909107d756 24Gi RWX ibmc-file-silver 7m29s -
PVC の状況に Pending と表示される場合は、PVC の詳細を表示し、出力の Events セクションに警告またはエラー・メッセージがないか確認します。 ボリューム・バインディング・モードが
WaitForFirstConsumerに設定されているストレージ・クラスを参照する PVC は、PVC を使用するアプリ・ポッドがデプロイされるまで Pending のままであることに注意してください。oc describe pvc <pvc_name>出力例
Name: local-pvc Namespace: default StorageClass: sat-local-file-gold Status: Pending Volume: Labels: <none> Annotations: <none> Finalizers: [kubernetes.io/pvc-protection] Capacity: Access Modes: VolumeMode: Filesystem Mounted By: <none> Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning ProvisioningFailed 60s (x42 over 11m) persistentvolume-controller storageclass.storage.k8s.io "sat-local-file-gold" not found
-
-
Block Storage for Classic のトラブルシューティング資料で一般的なエラーの解決手順を確認します。
oc CLI バージョンを確認して更新する
少なくともクラスターの major.minor バージョンと同じ oc CLI バージョンを使用しないと、予期しない結果になる可能性があります。 たとえば、 Kubernetes 対応していません oc のクライアントバージョンが、サーバーバージョンから2バージョン以上離れている場合(n
± 2)などです。
-
ローカル・マシンで実行する
ocCLI バージョンが、クラスターにインストールされている Kubernetes のバージョンと一致することを確認します。 クラスターおよびローカル・マシンにインストールされているocCLI バージョンを表示します。oc version出力例:
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.35", 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.35+IKS", GitCommit:"e15454c2216a73b59e9a059fd2def4e6712a7cf0", GitTreeState:"clean", BuildDate:"2019-04-01T10:08:07Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}CLI バージョンが一致するのは、クライアントとサーバーの
GitVersionに同じバージョンが表示される場合です。 サーバーのバージョンの+IKS部分は無視できます。 -
ローカルマシンとクラスタの
ocCLIのバージョンが一致しない場合は、クラスタを更新するか、 ローカルマシンに別のバージョンのCLIをインストールしてください。
Block Storage for Classic ドライバーの確認と更新
-
Block Storage for VPCの場合、 Block Storage for VPC クラスター・アドオンの最新バージョン があることを確認します。
-
クラシック・クラスター上の Block Storage for Classic の場合は、プラグインの最新の Helm チャート・バージョンをインストールしたことを確認します。
- Helm チャート・リポジトリーを更新します。
helm repo update ``` 2. リポジトリーの Helm チャートをリストします。 ```sh {: pre} helm search repo iks-charts | grep block-storage-plugin ``` 出力例 ```sh {: screen} 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 ``` 3. クラスターにインストールされた Helm チャートをリストし、インストールしたバージョンと使用可能なバージョンを比較します。 ```sh {: pre} helm list --all-namespaces ``` 4. より新しいバージョンが使用可能な場合は、そのバージョンをインストールします。 手順については、[IBM Cloud Block Storage プラグインの更新](/docs/openshift?topic=openshift-vpc-block#vpc-addon-update)を参照してください。