1.4.5. Velero プラグインのパニックエラーの回避
imagestream のバックアップ中に発生する Velero プラグインのパニックエラーを解決するために、カスタムバックアップストレージロケーション (BSL) にラベルを付けます。これは、DataProtectionApplication (DPA) CR の外部で BSL を管理する場合に、OADP コントローラーが必要なレジストリーシークレットを確実に作成できるようになります。
シークレットが欠落していると、イメージストリームのバックアップ中に Velero プラグインでパニックエラーが発生する可能性があります。バックアップと BSL が DPA の範囲外で管理されている場合、OADP コントローラーによって関連する oadp-<bsl_name>-<bsl_provider>-registry-secret パラメーターが作成されません。
バックアップ操作中に、OpenShift Velero プラグインが imagestream バックアップでパニックになり、次のパニックエラーが発生します。
024-02-27T10:46:50.028951744Z time="2024-02-27T10:46:50Z" level=error msg="Error backing up item"
backup=openshift-adp/<backup name> error="error executing custom action (groupResource=imagestreams.image.openshift.io,
namespace=<BSL Name>, name=postgres): rpc error: code = Aborted desc = plugin panicked:
runtime error: index out of range with length 1, stack trace: goroutine 94…
手順
次のコマンドを使用して、カスタムの BSL に適切なラベルを付けます。
$ oc label backupstoragelocations.velero.io <bsl_name> app.kubernetes.io/component=bslBSL にラベルを付けた後、DPA がリコンサイルされるまで待ちます。
注記DPA 自体に軽微な変更を加えることで、強制的に調整を行うことができます。
検証
DPA がリコンサイルされたら、次のコマンドを入力して、パラメーターが作成され、正しいレジストリーデータがそこに入力されていることを確認します。
$ oc -n openshift-adp get secret/oadp-<bsl_name>-<bsl_provider>-registry-secret -o json | jq -r '.data'