IBM Cloud Object Storage の障害のデバッグ
Object Storage をデバッグするオプションを確認し、障害の根本原因を探します。
ストレージ・インスタンスをマウントするポッドが正常にデプロイされているかどうかの確認
手順に従って、ポッド・デプロイメントに関連するエラー・メッセージを確認します。
-
クラスター内のポッドをリストします。 ポッドで Running の状況が示される場合、ポッドは正常にデプロイされています。
kubectl get pods
-
ポッドの詳細を取得し、CLI 出力の Events セクションに表示されているエラー・メッセージがないか確認します。
kubectl describe pod <pod_name>
-
ポッドのログを取得し、エラー・メッセージがないか確認します。
kubectl logs <pod_name>
アプリ・ポッドの再始動
ポッドを再始動して再デプロイすると問題を解決できる場合があります。 手順に従って、特定のポッドを再デプロイします。
-
ポッドがデプロイメントの一部である場合は、ポッドを削除し、デプロイメントでポッドをビルドし直します。 ポッドがデプロイメントの一部ではない場合、ポッドを削除して、ポッドの構成ファイルを再適用します。
- ポッドを削除します。
出力例kubectl delete pod <pod_name>
pod "nginx" deleted
- 構成ファイルを再適用して、ポッドを再デプロイします。
出力例kubectl 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
名前空間のポッドをリストします。kubectl get pods -n kube-system
-
ストレージ・ドライバーとプラグインのポッドに実行中 (Running) 状況が表示されない場合は、ポッドの詳細を取得して、根本原因を見つけます。 ポッドの状況によっては、以下のコマンドは失敗する場合があります。
-
ドライバー・ポッドで実行されるコンテナーの名前を取得します。
kubectl describe pod <pod_name> -n kube-system
-
ドライバー・ポッドからローカル・マシン上の
logs.txt
ファイルに、ログをエクスポートします。kubectl logs <pod_name> -n kube-system > logs.txt
-
ログ・ファイルを確認します。
cat logs.txt
-
-
最新のログにエラー・メッセージがないか調べます。 Object Storage のトラブルシューティング資料で、一般的なエラーの解決手順を確認します。
PVC が正常にプロビジョンされているかどうかの確認
手順に従って、PVC の状況を確認し、エラー・メッセージを確認します。
-
PVC の状況を確認します。 PVC で Bound の状況が示される場合、PVC は正常にプロビジョンされています。
kubectl 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 のままであることに注意してください。kubectl 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
-
-
Object Storage のトラブルシューティング資料で、一般的な Object Storage PVC エラーの解決手順を確認します。
kubectl CLI バージョンの確認と更新
少なくともクラスターの major.minor バージョンと同じ kubectl
CLI バージョンを使用しないと、予期しない結果になる可能性があります。 例えば Kubernetes サポートしていませんkubectl
サーバー
バージョンから 2 バージョン以上離れたクライアント バージョン (n +/- 2)。
-
ローカル・マシンで実行する
kubectl
CLI バージョンが、クラスターにインストールされている Kubernetes のバージョンと一致することを確認します。 クラスターおよびローカル・マシンにインストールされているkubectl
CLI バージョンを表示します。kubectl 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
部分は無視できます。 -
ローカルマシンとクラスターの
kubectl
CLIバージョンが一致しない場合は、クラスターを更新するか、 ローカルマシンに別のCLIバージョンをインストールしてください。
Object Storage プラグインの確認と更新
ドライバー・ログおよびインストールされているドライバー・バージョンの確認
ドライバログを確認し、 Object Storage のインストールにおけるドライバのバージョンを確認するには、以下の手順を実行してください。
- kube-system 名前空間内のポッドをリストします。
kubectl get pods -n kube-system -o wide -l app=ibmcloud-object-storage-driver
- ポッドのログを確認します。
kubectl -n kube-system exec -it -- cat /host/log/ibmc-s3fs.log
Helm チャートの更新
Helm チャートを古いバージョンから更新するには、以下の手順を実行します。
-
現在の Helm チャートをアンインストールします。
helm ls --all --all-namespaces
helm uninstall <helm_chart_name> -n <helm_chart_namespace>
-
Helm リポジトリーを追加および更新します。
helm repo add ibm-helm https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helm
helm repo update
-
新しい Helm チャートをインストールします。
helm plugin uninstall ibmc helm fetch --untar ibm-helm/ibm-object-storage-plugin && cd ibm-object-storage-plugin helm plugin install ./ibm-object-storage-plugin/helm-ibmc helm ibmc --help