CNDO 2021、KubernetesのバックアップツールVeleroを紹介
Cloud Native Days Online 2021から、今回はKubernetesのリソースやボリュームをバックアップするオープンソースソフトウェアVeleroを紹介する。セッションを担当したのは、ヴイエムウェア株式会社のクラウドネイティブフィールドエンジニアである村田一平氏だ。
今回のセッションではVelero、Restic、それに村田氏が所属するVMwareの仮想化基盤であるvSphere対応のプラグインをベースに解説すると説明している。ここでVeleroとResticの関係を整理しておこう。VeleroはもともとHeptioが開発していたArkというソフトウェアだが、HeptioがVMwareに買収された経緯で、今はVMwareが中心となって開発を行っているオープンソースソフトウェアだ。
Resticもオープンソースソフトウェアとして開発されているバックアップのためのソフトウェアで、Veleroはプラグインの形でResticを利用している。VeleroはResticをスナップショットのための追加機能として使っているが、まだベータレベルの品質なので制限事項も存在しているというのが2021年4月時点の状況だ。
ここで村田氏は、KubeCon EU 2019の2日目のキーノートセッションで紹介されたSpotifyの障害について触れ、この障害以降SpotifyがKubernetesのバックアップをちゃんと実行するようになったことを紹介した。クラスターの作成・消去が簡単に行えるKubernetesとは言えども、バックアップは重要だと強調した。ちなみにSpotifyが3つのリージョンに分かれたクラスターのうち2つを消失させたという事例に関しては、以下の記事を参照して欲しい。
参考:KubeCon Europe、2日目のキーノートはSpotifyの失敗事例とIBMのRazeeがポイント
そしてVeleroについて簡単に紹介。Kubernetesに特化したバックアップツールとしてHeptioが開発していたソフトウェアを、Heptioを買収したVMwareが引き継いだという解説を行った。
Veleroの最初のリリース0.3.0は、2017年8月に公開されており、現在(記事執筆時点)はバージョン1.5.3が最新版として公開されていると解説した。
Kubernetesが最初にGitHubにコミットされたのが2014年6月6日で、これはHeptioの創業者で当時はGoogleのエンジニアだったJoe Beda氏によって行われているため、Kubernetes専用のバックアップツールは約3年後に登場したということになる。開発自体はそれ以前から行われているため、ディスカッションフォーラムでは「5年前から開発されているツール」と紹介されており、歴史のあるツールと言える。
Veleroの特徴として「マルチクラウドへの対応」「Kubernetesが利用するストレージであるPersistent Volume及び設定情報となるCustom Resourceのバックアップが可能」が挙げられた。またプラグインによる拡張はパブリッククラウドへのバックアップなどにも利用される仕組みであり、Veleroの開発チームがサポートしているクラウドプロバイダー以外にも、ベンダーがプラグインを開発・公開して利用することも可能である。正式にサポートされていないプロバイダーへのスナップショットも、Resticのプラグインを使って利用可能になっていることがドキュメントにも記載されている。
参考:Providers
ユースケースを解説したスライドでは、障害対策のためのバックアップ以外にもオンプレミスからパブリッククラウド、またはその逆のマイグレーションや、クラスター複製のためにも利用可能であると説明した。
クラスター複製のユースケースでは、Kubernetes以外のコンポーネントが利用されている時にそれらの設定情報をコピーすることで、開発者の準備作業が低減されること、また検証ための環境設定を行えることなどを効果として解説した。
VeleroはKubernetesのカスタムリソースとコントローラーを使ってバックアップを行うため、多くのカスタムリソースが生成されていることがわかる。
このスライドでは「Velero backup create」コマンドがAPIを通してKubernetesに送信され、最終的にS3のバケットとしてバックアップが行われることを解説している。
基本となるバックアップはNamespace、Resource、Labelなどの単位で行うことができると説明。バックアップ/リストアの前後に処理を実行させることも可能だが、リストアの前に処理を行うためにはバージョン1.5以降を使う必要があることを注意点として説明した。
ここからは、実際にVeleroを使ったエンジニアとしての経験からの解説として細かな利用上の注意点が説明された。
これに関連した苦労話として、プラグインの利用時に完了のステータスがVelero側とプラグイン側で非同期なっている場合には注意が必要だと説明した。ここでの例はvSphereプラグインだが、Velero本体とプラグインが独立して実行される場合には要注意という部分だろう。
最後にまとめとしてKubernetesにおいてもバックアップを実行しよう、事前検証を行おう、公式ドキュメントを読もうなどと説明した。またvelero bugコマンドを使うとGitHubでIssueを報告することができるという小ネタを解説してセッションを終えた。実際に使った経験談を交えた具体的な内容で、これからKubernetesでのバックアップを検討しようというエンジニアには良いイントロダクションだろう。
Veleroは2021年4月12日に最新バージョン1.6.0が公開されている。
リリース情報:https://github.com/vmware-tanzu/velero/releases
公式サイト:Velero
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- KubeCon Europe、2日目のキーノートはSpotifyの失敗事例とIBMのRazeeがポイント
- CNDO 2021、YAMLの加工ツールyttをVMwareのソリューションアーキテクトが解説
- OpenStack Summit 2018、Yahoo!ジャパンが共同開発するGimbalとは?
- 「CloudNative Days Spring 2021 Online」開催レポート
- Kubernetesで機械学習を実現するKubeflowとは?
- SODA Data Vision 2023からKubernetes上のアプリケーションデータを保護するKanisterを紹介
- エンタープライズ向けデータ保護のVeritas、クラウドネイティブ時代のデータ保護を語る
- 「KubeCon NA 2022」から、初日のキーノートセッションを紹介
- CNDT2020シリーズ:サイボウズのSREが語る分散ストレージの配置問題を解決するTopoLVMとは
- KubeCon+CloudNativeCon NA開催 Kubernetesのクラスター管理を進化させる方法論をKatie Gamanji氏が解説