このトピックでは、サーバーレス Kubernetes (ACK Serverless) クラスターで動的にプロビジョニングされたディスクボリュームを作成する際の一般的なエラーと、その解決策について説明します。
永続ボリューム要求 (PVC) イベントを表示するには、次のコマンドを実行し、エラーを以下のセクションのいずれかに照合してください。
kubectl describe pvc <pvc-name>ディスク作成に関するよくある質問
PVC プロビジョニングが InvalidDataDiskCatagory.NotSupported で失敗する理由
ゾーンがご利用の StorageClass で指定されたディスクタイプをサポートしていないか、そのディスクタイプがそのゾーンで在庫切れです。以下のいずれかのソリューションを使用してください。
StorageClass で複数のディスクタイプを指定します。 Container Storage Interface (CSI) プラグインは、利用可能なタイプを自動的に選択します。構成の詳細については、動的にプロビジョニングされたディスクボリュームの使用をご参照ください。また、CSI プラグインを最新バージョンに更新し、複数タイプの選択を自動的に処理する
alicloud-disk-topology-alltypeStorageClass を使用することもできます。同一ゾーンに留まりたい場合は、このオプションを使用します。別のゾーンにノードを追加します。 ご利用のワークロードがゾーンの柔軟性を許容できる場合、別のゾーンに拡張することで、可用性と在庫の問題の両方が解決されます。クロスゾーンデプロイの設定については、「クロスゾーンデプロイの推奨ストレージ設定」をご参照ください。ゾーンの柔軟性が許容され、現在のゾーンで永続的な在庫の問題がある場合は、このオプションを使用してください。
PVC プロビジョニングが「指定された AZone の在庫が不足しています」で失敗する理由
ディスクをバックアップするために必要な基盤となる Elastic Compute Service (ECS) インスタンスが、そのゾーンで在庫切れです。以下のいずれかのソリューションを使用してください。
StorageClass で複数のディスクタイプを指定します。CSI プラグインを最新バージョンに更新し、
alicloud-disk-topology-alltypeStorageClass を使用して、CSI プラグインが利用可能なタイプにフォールバックできるようにします。詳細については、「動的にプロビジョニングされたディスクボリュームを使用する」をご参照ください。同じゾーンに留まりたい場合は、このオプションを使用します。別のゾーンにノードを追加します。 プロビジョニングを利用可能な在庫があるゾーンに移動します。詳細については、「クロスゾーンデプロイの推奨ストレージ設定」をご参照ください。ゾーンの柔軟性が許容される場合は、このオプションを使用してください。
PVC プロビジョニングが「ディスクサイズがサポートされていません」で失敗する理由
ご利用の PVC で指定されたディスクサイズが、ディスクタイプの最小要件を満たしていません。たとえば、Ultra ディスクと SSD には少なくとも 20 GiB が必要です。ご利用のディスクタイプの制限については、「ディスクカテゴリ」で確認し、要件を満たすように PVC のストレージリクエストを更新してください。
永続ボリューム (PV) の作成が WaitForFirstConsumer モードで失敗し、Immediate モードでは成功する理由
サーバーレス Kubernetes クラスターでは、ノードは事前にではなく Pod のスケジューリング時に割り当てられます。クラスターは、Pod が PVC を要求するまでどのゾーンにディスクをプロビジョニングするかを判断できないため、WaitForFirstConsumer モードでスケジューリングトポロジーを正しく検出するには、追加の構成が必要になります。
サーバーレス Kubernetes で WaitForFirstConsumer モードを有効にするには:
csi-provisionerを最新バージョンに更新します。詳細については、「コンポーネントの管理」をご参照ください。eci-profileConfigMap を編集します:kubectl edit configmap eci-profile -n kube-systemfeatureGatesセクションで、WaitForFirstConsumerをtrueに設定します:featureGates: MetricsVpcNet=true,WaitForFirstConsumer=true