Kubernetesのバックアップについてのメモ(Velero+MinIO)


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などで入るので便利。

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に記載されている。

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への認証情報を書くことになる。

credentials-velero
[default]
aws_access_key_id = minio
aws_secret_access_key = minio123