Kubernetesのバックアップについて
Kubernetes上で動作するアプリケーションのバックアップ方法についてメモ
Kubernetes自体を作ったエンジニアが開発したという、Heptio Arkというバックアップツールがあり、VMwareがそれを買収してVeleroと命名しなおしている。
参考: https://www.atmarkit.co.jp/ait/articles/1811/15/news028.html
このVeleroを用いて、バックアップリストアの簡単なテストをしてみたときのメモ。
バックアップツール Velero
下記がVeleroのGithub
https://github.com/vmware-tanzu/velero
使用方法に関する例もマニュアルには載っている。
下記は、namespaceが削除されてしまった場合の障害を想定して、バックアップ、リストアを行うサンプルになっている。
https://velero.io/docs/v1.3.0/examples/
バックアップの保存先はオブジェクトストレージを使うことができるみたい。
ここの部分はAWS S3などで構わないが、MinIOというオブジェクトストレージを用いてみる。
オブジェクトストレージ MinIO
MinIOはS3互換の分散型オブジェクトストレージで、さくっと導入する分には下記のdocker-compose.yamlなどで入るので便利。
version: '2'
services:
minio:
ports:
- '9000:9000'
image: minio/minio
volumes:
- ./data:/data
command: server /data
実行してみると、下記のように接続用情報が出てくるので、そのままブラウザでアクセスできる。
ブラウザで表示するとこんな感じ。
右下のボタンからバケット作成と、ファイルのアップロードが可能
Velero + MinIO
VeleroとMinIOを用いて、Kubernetesのバックアップ&リストアを試せるチュートリアルを作った。
メモ
MinIOの認証情報は、00-minio-deployment.yamlに記載されている。
env:
- name: MINIO_ACCESS_KEY
value: "minio"
- name: MINIO_SECRET_KEY
value: "minio123"
この認証情報を、veleroからMinIOに接続するときに利用している。
veleroで使用する認証情報は、credentials-veleroというファイルに保存している。
もちろん、AWS S3を使用する場合にはここに、S3への認証情報を書くことになる。
[default]
aws_access_key_id = minio
aws_secret_access_key = minio123