1.8.3. 非推奨の API GroupVersionKinds の更新
OpenShift Container Platform 4.4 では、OpenShift Container Platform 3.x によって使用される一部の API GroupVersionKinds
(GVK) が 非推奨 になりました。
ソースクラスターが非推奨の GVK を使用する場合、移行計画の作成時に、Some namespaces contain GVKs incompatible with destination cluster
という警告が表示されます。See details をクリックして namespace と互換性のない GVK を表示します。
この警告は移行をブロックしません。
移行時に、非推奨の GVK は Kubernetes オブジェクトの Velero バックアップカスタムリソース (CR )#1 に保存されます。バックアップ CR をダウンロードし、非推奨の GVK yaml
ファイルを展開し、これらを oc convert
コマンドで更新できます。次に、ターゲットクラスターで更新された GVK を作成します。
手順
- 移行計画を実行します。
MigPlan CR を表示します。
$ oc describe migplan <migplan_name> -n openshift-migration 1
- 1
- 移行計画の名前を指定します。
出力は以下の例のようになります。
metadata: ... uid: 79509e05-61d6-11e9-bc55-02ce4781844a 1 status: ... conditions: - category: Warn lastTransitionTime: 2020-04-30T17:16:23Z message: 'Some namespaces contain GVKs incompatible with destination cluster. See: `incompatibleNamespaces` for details' status: "True" type: GVKsIncompatible incompatibleNamespaces: - gvks: - group: batch kind: cronjobs 2 version: v2alpha1 - group: batch kind: scheduledjobs 3 version: v2alpha1
MigPlan UID に関連付けられた MigMigration 名を取得します。
$ oc get migmigration -o json | jq -r '.items[] | select(.metadata.ownerReferences[].uid=="<migplan_uid>") | .metadata.name' 1
- 1
- MigPlan UID を指定します。
MigMigration 名に関連付けられた MigMigration UID を取得します。
$ oc get migmigration <migmigration_name> -o jsonpath='{.metadata.uid}' 1
- 1
- MigMigration 名を指定します。
MigMigration UID に関連付けられた Velero バックアップ名を取得します。
$ oc get backup.velero.io --selector migration-initial-backup="<migmigration_uid>" -o jsonpath={.items[*].metadata.name} 1
- 1
- MigMigration UID を指定します。
Velero バックアップの内容をローカルマシンにダウンロードします。
AWS S3 の場合:
$ aws s3 cp s3://<bucket_name>/velero/backups/<backup_name> <backup_local_dir> --recursive 1
- 1
- バケット、バックアップ名、およびローカルバックアップのディレクトリー名を指定します。
GCP の場合:
$ gsutil cp gs://<bucket_name>/velero/backups/<backup_name> <backup_local_dir> --recursive 1
- 1
- バケット、バックアップ名、およびローカルバックアップのディレクトリー名を指定します。
Azure の場合:
$ azcopy copy 'https://velerobackups.blob.core.windows.net/velero/backups/<backup_name>' '<backup_local_dir>' --recursive 1
- 1
- バックアップ名とローカルバックアップのディレクトリー名を指定します。
Velero バックアップアーカイブファイルを展開します。
$ tar -xfv <backup_local_dir>/<backup_name>.tar.gz -C <backup_local_dir>
非推奨となったそれぞれの GVK でオフラインモードで
oc convert
を実行します。$ oc convert -f <backup_local_dir>/resources/<gvk>.json 1
- 1
- 非推奨の GVK を指定します。
ターゲットクラスターで変換された GVK を作成します。
$ oc create -f <gvk>.json 1
- 1
- 変換された GVK を指定します。