一般社団法人 全国個人事業主支援協会

COLUMN コラム

こんにちは、個人で頑張ってるクラウドエンジニアです。

大分肌寒くなってきたこの季節、暖かくして風邪ひかないように頑張っていきましょう。

今日は、Kubernetes リソースのバックアップツールとなる velero について記載します。

メモレベルで恐縮ですが、velero の概要から

 

Velero 概要
参考: https://velero.io/

・Kubernetesのバックアップ・リストアツールで、クラスタ構成やPersistentVolumeのデータを保護できる。
・Namespace単位やリソース単位で柔軟にバックアップ・復元が可能。
・クラウドストレージ(例:AWS S3、OCI Object Storage、Azure Blob)をバックアップの保存先として利用。
・CRDとControllerで構成され、バックアップ・リストア操作は velero CLI か Kubernetes API 経由で実行。
・スナップショット機能(CSIやRestic対応)により、永続ボリュームのデータも一貫性を保ってバックアップできる。

Velero 利用方法

今回は AWS の AKS (AmazonKubernetesService) の利用を前提とします。
作業端末はmacOS
IAMは作成済みの前提
バックアップデータをS3に保管する

・veleroコマンドをinstall

$ curl -fsSL https://github.com/vmware-tanzu/velero/releases/latest/download/velero-linux-amd64.tar.gz | tar -xz
$ sudo mv velero*/velero /usr/local/bin/

・AWS認証用ファイルを用意する

$ vi credentials-velero
~~~
[default]
aws_access_key_id=<ACCESS_KEY_ID>
aws_secret_access_key=<SECRET_ACCESS_KEY>
~~~

・velero install

velero install \
–provider aws \
–plugins velero/velero-plugin-for-aws:v1.9.1 \
–bucket velero-backup-bucket \
–secret-file ./credentials-velero \
–backup-location-config region=ap-northeast-1,s3ForcePathStyle=”true”,s3Url=https://s3.ap-northeast-1.amazonaws.com \
–use-volume-snapshots=false \
–use-restic


※ –use-restic は PVC バックアップに必要

・velero backup/restore テスト

# バックアップ
velero backup create test-backup –include-namespaces default

# 確認
velero backup get

# リストア
velero restore create –from-backup test-backup

結構簡単にバックアップ取得できました。
永続ボリューム(PV)のバックアップ取得は、snapshotを利用するか、resticという、これまたOSSのバックアップツールを利用してPodのマウントディレクトリ単位でバックアップを取得する方法の2種類がありそうです。
バックアップ取得する際は、やはりPodを利用するアプリケーションなどの静止点を設けてからバックアップ実行することで、データ破損を防ぐ必要がありそうです。
バックアップ実施時に、アプリ静止コマンドをhookするような仕組みがありそうなので、次回はそれについて解説できればと思います。

The following two tabs change content below.

Kenneth Ozeki

インフラ周りを担当するITエンジニアです。 経験はオンプレ5年、クラウド7年ほど python, go などで簡単な運用ツールも作成してます

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア