Velero Plugin for vSphere を使用して TKGS クラスタで実行されているワークロードをバックアップおよびリストアするには、このクラスタに Velero Plugin for vSphere をインストールします。
概要
前提条件:スーパーバイザー への Velero Plugin for vSphere のインストール
TKGS クラスタに Velero Plugin for vSphere をインストールするには、スーパーバイザー に Velero Plugin for vSphere がインストールされている必要があります。また、スーパーバイザー に NSX ネットワークが構成されている必要があります。を参照してください。
手順 1:Linux Workstation への Velero CLI のインストール
Velero CLI は、Velero とのインターフェイスを提供する標準ツールです。Velero CLI は Velero Plugin for vSphere CLI (velero-vsphere
) よりも高機能で、Tanzu Kubernetes クラスタ ワークロードのバックアップとリストアに必要です。
Linux ワークステーションに Velero CLI をインストールします。理想的なのは、このワークステーションが、vSphere IaaS control plane 環境に関連付けられた CLI(kubectl
、kubectl-vsphere
、velero-vsphere
など)を実行するジャンプ ホストと同じであることです。
Velero バージョン番号は X.Y.Z
として表されます。使用するバージョンについては、Velero 互換性マトリックスを参照し、コマンドの実行時に適宜置き換えてください。
- 次のコマンドを実行します。
$ wget https://github.com/vmware-tanzu/velero/releases/download/vX.Y.Z/velero-vX.Y.Z-linux-amd64.tar.gz $ gzip -d velero-vX.Y.Z-linux-amd64.tar.gz && tar -xvf velero-vX.Y.Z-linux-amd64.tar $ export PATH="$(pwd)/velero-vX.Y.Z-linux-amd64:$PATH" $ which velero /root/velero-vX.Y.Z-linux-amd64/velero
- Velero CLI がインストールされていることを確認します。
velero version Client: Version: vX.Y.Z
手順 2:S3 互換バケットの詳細の取得
便宜上、この手順では、スーパーバイザー に Velero Plugin for vSphere をインストールするときに構成したのと同じ S3 互換オブジェクト ストアを使用していると仮定します。本番環境では、別のオブジェクト ストアを作成できます。
データ項目 | 値の例 |
---|---|
s3Url |
|
aws_access_key_id | ACCESS-KEY-ID-STRING |
aws_secret_access_key | SECRET-ACCESS-KEY-STRING |
s3-credentials
という名前のシークレット ファイルを作成します。このファイルは、
Velero Plugin for vSphere をインストールするときに参照します。
aws_access_key_id = ACCESS-KEY-ID-STRING aws_secret_access_key = SECRET-ACCESS-KEY-STRING
手順 3(オプション A):ラベルを使用した TKG クラスタへの Velero Plugin for vSphere のインストール(新しい方法)
- バックアップ ストレージの場所にアクセス可能であることを確認します。
- Velero vSphere Operator Core スーパーバイザー サービス が有効になっていることを確認します。
kubectl get ns | grep velero svc-velero-domain-c9 Active 18d
velero
という名前の Kubernetes 名前空間が スーパーバイザー に作成されていることを確認します。kubectl get ns | grep velero svc-velero-domain-c9 Active 18d velero Active 1s
- Velero Plugin for vSphere スーパーバイザー サービス が スーパーバイザー で有効になっていることを確認します。
velero version Client: Version: v1.11.1 Git commit: bdbe7eb242b0f64d5b04a7fea86d1edbb3a3587c Server: Version: v1.11.1
kubectl get veleroservice -A NAMESPACE NAME AGE velero default 53m
velero backup-location get NAME PROVIDER BUCKET/PREFIX PHASE LAST VALIDATED ACCESS MODE DEFAULT default aws velero Available 2023-11-20 14:10:57 -0800 PST ReadWrite true
- velero ラベルをクラスタに追加して、ターゲット TKG クラスタに対して Velero を有効にします。
kubectl label cluster
CLUSTER-NAME
--namespaceCLUSTER-NS
velero.vsphere.vmware.com/enabled=true注: この作業は、クラスタのプロビジョニング時に vSphere 名前空間 から実行します。 - Velero がインストールされていること、およびクラスタの準備ができていることを確認します。
kubectl get ns NAME STATUS AGE ... velero Active 2m <-- velero-vsphere-plugin-backupdriver Active 2d23h
kubectl get all -n velero NAME READY STATUS RESTARTS AGE pod/backup-driver-5945d6bcd4-gtw9d 1/1 Running 0 17h pod/velero-6b9b49449-pq6b4 1/1 Running 0 18h NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/backup-driver 1/1 1 1 17h deployment.apps/velero 1/1 1 1 18h NAME DESIRED CURRENT READY AGE replicaset.apps/backup-driver-5945d6bcd4 1 1 1 17h replicaset.apps/velero-6b9b49449 1 1 1 18h
velero version Client: Version: v1.11.1 Git commit: bdbe7eb242b0f64d5b04a7fea86d1edbb3a3587c Server: Version: v1.11.1
手順 3(オプション B):手動による TKG クラスタへの Velero Plugin for vSphere のインストール(従来の方法)
Velero CLI を使用して、バックアップおよびリストアするターゲットの TKG クラスタに Velero Plugin for vSphere をインストールします。
kubectl
コンテキストに自動的に従います。Velero CLI コマンドを実行してターゲット クラスタに Velero と
Velero Plugin for vSphere をインストールする前に、
kubectl
コンテキストをターゲット クラスタに設定してください。
- kubectl 向けの vSphere プラグイン を使用して、スーパーバイザー での認証を行います。
kubectl
コンテキストをターゲットの TKG クラスタに設定します。kubectl config use-context TARGET-TANZU-KUBERNETES-CLUSTER
- TKG クラスタで、Velero プラグイン
velero-vsphere-plugin-config.yaml
の構成マップを作成します。apiVersion: v1 kind: ConfigMap metadata: name: velero-vsphere-plugin-config data: cluster_flavor: GUEST
TKG クラスタに構成マップを適用します。kubectl apply -n <velero-namespace> -f velero-vsphere-plugin-config.yaml
構成マップをインストールしなかった場合は、 Velero Plugin for vSphere をインストールするときに次のエラーが表示されます。Error received while retrieving cluster flavor from config, err: configmaps "velero-vsphere-plugin-config" not found Falling back to retrieving cluster flavor from vSphere CSI Driver Deployment
- 次の Velero CLI コマンドを実行して、ターゲット クラスタに Velero をインストールします。
BUCKET-NAME、REGION(2 つのインスタンス)、および s3Url フィールドのプレースホルダ値を適切な値に置き換えます。前述のいずれかの手順に従わなかった場合は、シークレット ファイルの名前や場所、手動で作成した
velero
名前空間の名前などの値を調整します。./velero install --provider aws \ --bucket BUCKET-NAME \ --secret-file ./s3-credentials \ --features=EnableVSphereItemActionPlugin \ --plugins velero/velero-plugin-for-aws:vX.Y.Z \ --snapshot-location-config region=REGION \ --backup-location-config region=REGION,s3ForcePathStyle="true",s3Url=http://my-s3-store.example.com
- ターゲット クラスタに Velero Plugin for vSphere をインストールします。インストールされている Velero は Kubernetes API サーバと通信して、プラグインをインストールします。
velero plugin add vsphereveleroplugin/velero-plugin-for-vsphere:vX.Y.Z
補足:TKG クラスタからの Velero Plugin for vSphere のアンインストール
kubectl
コンテキストをターゲット Tanzu Kubernetes クラスタに設定します。kubectl config use-context TARGET-TANZU-KUBERNETES-CLUSTER
- プラグインをアンインストールするには、次のコマンドを実行して、Velero のデプロイから velero-plugin-for-vsphere の InitContainer を削除します。
velero plugin remove vsphereveleroplugin/velero-plugin-for-vsphere:vX.Y.Z
- プロセスを完了するには、バックアップ ドライバのデプロイと関連する CRD を削除します。
kubectl -n velero delete deployment.apps/backup-driver
kubectl delete crds \ backuprepositories.backupdriver.cnsdp.vmware.com \ backuprepositoryclaims.backupdriver.cnsdp.vmware.com \ clonefromsnapshots.backupdriver.cnsdp.vmware.com \ deletesnapshots.backupdriver.cnsdp.vmware.com \ snapshots.backupdriver.cnsdp.vmware.com
kubectl delete crds uploads.datamover.cnsdp.vmware.com downloads.datamover.cnsdp.vmware.com