このページでは、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 Persistent Disk であるストレージの一部を表します。PersistentVolumeClaim
が PersistentVolume
にバインドされ、PersistentVolume
の構成で Compute Engine 永続ディスクが指定されている場合、エラーが発生することがあります。ただし、PersistentVolume
構成で指定された名前と場所の実際のディスクが Google Cloud プロジェクトに見つかりません。そのため、Backup for GKE は存在しないディスクのバックアップを続行できず、障害が発生します。
このエラーを解決するには、次の手順を行います。
問題のある
PersistentVolumeClaim
とPersistentVolume
を特定します。問題のあるPersistentVolumeClaim
とそれに関連付けられたPersistentVolume
の両方の名前が、失敗した Backup for GKE オペレーションのstate reason
フィールドに表示されます。PersistentVolumeClaim
の名前、その Namespace、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 カスタマーケアにお問い合わせください。