このページでは、Backup for GKE の使用時に発生する可能性のあるストレージ関連のエラー、アクションの実行時に考慮すべき事項、問題のトラブルシューティングの手順について説明します。
エラー 100010105: PersistentVolumeClaim のバックアップに失敗しました - PersistentVolume で参照されているディスクが存在しません
100010105
エラーは、存在しないディスクを参照していることが原因で PersistentVolumeClaim
のバックアップの試行が失敗した場合に発生します。この場合、Failed to backup PersistentVolumeClaim - Disk referenced by PersistentVolume does not exist
というエラー メッセージが表示されます。
Google Kubernetes Engine では、PersistentVolumeClaims
が PersistentVolumes
からストレージをリクエストします。PersistentVolume
は、ストレージの一部(多くの場合、基盤となる Compute Engine 永続ディスク)を表します。PersistentVolumeClaim
が PersistentVolume
にバインドされ、PersistentVolume
の構成で Compute Engine 永続ディスクが指定されている場合、エラーが発生することがあります。ただし、PersistentVolume
構成で指定された名前と場所の実際のディスクが Google Cloud プロジェクトに見つかりません。そのため、Backup for GKE は存在しないディスクのバックアップを続行できず、エラーが発生します。
このエラーを解決するには、次の手順で対応します。
問題のある
PersistentVolumeClaim
とPersistentVolume
を特定します。問題のあるPersistentVolumeClaim
とそれに関連付けられたPersistentVolume
の両方の名前が、失敗した Backup for GKE オペレーションのstate reason
フィールドに表示されます。PersistentVolumeClaim
の名前と名前空間、PersistentVolume
の名前の両方を文書化することをおすすめします。PersistentVolume
を調べます。PersistentVolume
について説明するには、次のコマンドで状態理由フィールドから特定したPersistentVolume
名を使用します。kubectl describe pv PERSISTENTVOLUME_NAME
PERSISTENTVOLUME_NAME
は、PersistentVolume の名前に置き換えます。出力で、
source
セクション(特にcsi
)を確認します。このセクションでは、PersistentVolume
が参照しようとしているVolumeHandle
について説明します。例:Source: Type: GCEPersistentDisk (a Persistent Disk resource in Google Compute Engine) PDName: my-non-existent-disk FSType: ext4 Partition: 0 ReadOnly: false In this example, the PD name is my-non-existent-disk. Source: Type: CSI (a Container Storage Interface (CSI) volume) Driver: pd.csi.storage.gke.io VolumeHandle: projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME ...
この例では、
VolumeHandle
にディスクのフルパス(名前とロケーションを含む)が含まれています。例:projects/my-gcp-project/zones/us-central1-a/disks/my-disk-name
PersistentVolume
の説明から取得したVolumeHandle
を使用して、ディスク名とゾーンを特定します。次のいずれかの方法で、ディスクが Google Cloud プロジェクトに存在することを確認します。
ゾーンディスク
ゾーンディスクを使用している場合は、Google Cloud CLI を使用して
gcloud compute disks describe
コマンドを実行します。gcloud compute disks describe DISK_NAME \ --zone=ZONE_NAME \ --project=PROJECT_ID
次のように置き換えます。
DISK_NAME
:PersistentVolume
の説明から取得したディスクの名前。ZONE_NAME
:PersistentVolume
の説明から取得したディスクのゾーン。PROJECT_ID
: 実際の Google Cloud プロジェクト ID。
リージョン ディスク
リージョン ディスクを使用している場合は、Google Cloud CLI を使用して
gcloud compute disks describe
コマンドを実行します。gcloud compute disks describe DISK_NAME \ --region=REGION_NAME \ --project=PROJECT_ID
次のように置き換えます。
DISK_NAME
:PersistentVolume
の説明から取得したディスクの名前。REGION_NAME
:PersistentVolume
の説明から取得したディスクのリージョン。PROJECT_ID
: 実際の Google Cloud プロジェクト ID。
Resource not found
またはThe resource DISK_NAME was not found
のエラー メッセージが表示された場合は、ディスクが存在しません。ニーズに最も適したシナリオに応じて、次のいずれかの方法で問題を解決します。ディスクが誤って削除されたか、名前が間違っていて、データまたは
PersistentVolumeClaim
を保持する場合、またはPersistentVolume
が間違ったディスク名で構成されている場合は、次のいずれかの方法で問題を解決します。ディスクを復元する: ディスクのバックアップがある場合は、
PersistentVolume
が参照しているのとまったく同じ名前とロケーションで復元します。新しいディスクを作成する: ディスクの復元がオプションでない場合は、
PersistentVolume
構成と同じ名前とロケーションで新しいディスクを作成します。
PersistentVolumeClaim
またはPersistentVolume
、そのデータ、またはアプリケーションが不要になった場合は、不要なエンティティを削除することをおすすめします。PersistentVolumeClaim
を削除する:kubectl
コマンドライン ツールを使用してkubectl delete pvc
コマンドを実行し、PersistentVolumeClaim
を削除します。
kubectl delete pvc PVC_NAME -n NAMESPACE
次のように置き換えます。
PVC_NAME
: 削除するPersistentVolumeClaim
の名前。NAMESPACE
: 削除するPersistentVolumeClaim
の名前空間。
PersistentVolumeClaim
を削除してもPersistentVolume
が残る:PersistentVolume
のPersistentVolumeReclaimPolicy
がDelete
に設定されている場合、PersistentVolumeClaim
が削除されるとPersistentVolume
は自動的に削除されます。persistentVolumeReclaimPolicy
がRetain
に設定されている場合は、PersistentVolumeClaim
が削除された後にPersistentVolume
を手動で削除する必要があります。PersistentVolume
を削除するには、kubectl
コマンドライン ツールを使用してkubectl delete pv
コマンドを実行します。kubectl delete pv PV_NAME
PV_NAME
は、削除するPersistentVolume
の名前に置き換えます。
オペレーションが引き続き失敗する場合は、Cloud カスタマーケアにお問い合わせください。