トラブルシューティング
次のセクションでは、HyperFlex CSI 統合をインストールして使用するときに見られる一般的な問題について説明します。提供される情報には、問題の診断に役立つ症状と、問題を解決するための解決策が含まれています。
この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
次のセクションでは、HyperFlex CSI 統合をインストールして使用するときに見られる一般的な問題について説明します。提供される情報には、問題の診断に役立つ症状と、問題を解決するための解決策が含まれています。
症状 1:コマンド「kubectl get pods [-n <namespace>]」を実行すると、HXCSI ポッドのステータスが「ImagePullBackOff」であると表示されます。
症状 2:コマンド「kubectl description pod」の実行<csi-pod_name>」には、「Error:ErrImagePull」および「Back-off pulling image…」というエラーを含むメッセージが表示されます。
解決方法:
解決策 1:hxcsi-setup スクリプトに指定された HXCSI コンテナイメージ名が正しいことを確認します。
解決策 2:HXCSI コンテナイメージが、各 Kubernetes ワーカーノードの Docker 内に直接存在するか、またはローカル コンテナ イメージ レジストリに存在することを確認します。
解決策 3:hxcsi-setup スクリプトによって生成される次の YAML ファイルの「imagePullPolicy」行が「IfNotPresent」に設定されていることを確認します。csi-attacher-hxcsi.yaml、csi-nodeplugin-hxcsi.yaml、csi-provisioner-hxcsi .yaml
解決策 4:次のイメージが各 Kubernetes ノードのローカル コンテナ イメージ レジストリにロードされていることを確認します。csi-attacher-3.0.2-cisco1.tar、csi-node-driver-registrar-2.0.1-cisco1.tar、csi -resizer-1.0.1-cisco1.tar、csi-provisioner-2.0.4-cisco1.tar
NodeUnpublish が成功し、ボリュームがマウント解除された後でも、古いボリューム接続が存在するため、ボリュームの削除は失敗します。これは、etcd リーダーの選択中に delete volumeattachment kubernetes api が失われた場合に発生します。nodeUnpublish が完了し、ボリュームがノードから正常にアンマウントされた後でも、ボリュームの削除は失敗します。
external-provisioner のログは次のように表示されます。
ボリュームの削除に失敗しました:persistentvolume <pv-name> はまだノード <node-name> に接続されています。
external-attacher のログは次のように表示されます。
<Volume-attachment> はすでに接続されています。
解決方法:
次のコマンドを使用して、古いボリューム接続を削除します。
kubectl delete volumeattachments <VA-name>
プロビジョニング担当者が再試行すると、数秒後に pv が削除されます。
または、次のコマンドを使用して手動で削除することもできます。
kubectl delete pv <pv-name>
ノード削除中の ContainerCreating 状態のアプリケーション ポッドまたはまたはマルチ アタッチ エラー状態でスタックし、ボリュームをマウントできません。これは、クラスタから k8s ワーカー ノードを削除または削除するときに発生することがあり、ポッドは新しいワーカー ノードに移行します。
K8 ワーカー ノードを削除する推奨方法は、次のコマンドを使用することです。
kubectl drain <node-name>
kubectl delete node <node-name>
詳細については、「Kubernetes からノードを正常に削除するには(How to graceful remove a node from Kubernetes?)」を参照してください。
実行中(Running)状態のポッドが kubectl delete pod
コマンドを使用して削除された後に再作成され、名前空間を削除すると、終了中(Terminating)状態でスタックしました。
実行中のポッドで kubectl delete pod
コマンドを使用する代わりに、次のベスト プラクティスの方法が推奨されます。
削除するポッドが実行されているノード名をメモします。
kubectl get pods -o wide --all-namespaces
ポッドが実行されているノードのコードンをオフにします。
kubectl cordon <node-name>
ポッドを削除します。
kubectl delete pod <pod-name>
削除されたポッドが別のノードでスケジュールされていることを次を使用して確認します。
kubectl get pods -o wide --all-namespaces
ノードのコードンを外します。
kubectl uncordon <node-name>