LoginSignup
1
0

LonghornでS3へのバックアップ設定

Posted at

今回の内容

今回はRancher経由でkubernetesクラスタにLonghornをインストールし、Longhornを利用してステートフルなアプリケーションをデプロイ後、S3にデータのバックアップを作成します。

環境
Rancher: v2.7.0
Longhorn: v1.5.3
RKE2: v1.24.17+rke2r1
OS: Ubuntu22.04

Longhornとは

Longhornはkubernetesのためのソフトウェアディファインドストレージです。高可用で軽量で使いやすく、外部ストレージに依存しない作りとなっております。裏で外部ストレージを利用していてもいいですし、ローカルDiskでも問題ありません。Linux filesystemとして利用できるのであればLonghornでマウント可能です。
OSSで旧Rancher Labs(SUSEが買収)が開発しており、無料で全ての機能が利用可能です。
Longhornについてはこちら

インストール方法

Longhornのインストール方法は3つあります。

  1. kubectlでyamlを適用してのインストール
  2. helmでのインストール
  3. Rancher UIからのインストール

1.kubectlで適用する場合は以下のコマンドを適用します。

kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml

2.helmの場合は以下のコマンドを適用します。

helm repo add longhorn https://charts.longhorn.io
helm repo update
kubectl create namespace longhorn-system 
helm install longhorn longhorn/longhorn --namespace longhorn-system

3.Rancherからのインストールでは、Cluster toolsもしくはAppsChartsからインストールできます。

image.png

Longhornを利用してVolumeをマウントする方法(Rancher経由)

Longhornに限らず、kubernetesでVolumeをマウントするには、Storage ClassがPersistent Volume provisionerを呼び出して、Persistent Volumeを確保し、実際のストレージに書き込む流れとなります。
PV領域を確保するために、ユーザはPersitent Volume Claimを利用しVolume確保を要求します。
Longhornを利用する場合はLonghornがStorage Classとなります。この辺りを整理するともっと複雑な話になりますが、大まかな流れは以下の画像の通りです。
image.png

Rancher Ui上からVolumeを確保するにはPVCのところから必要項目を入力すれば問題ありません。
image.png

PVCを作成するとPVも作成され、Volumeが確保されます。

あとはDeploymentなどのリソースを作成する時にPodに今作成したPVをマウントしてあげることでステートフルなアプリケーションを作成できます。
image.png

するとLonghornのUI上でもVolumeがアタッチしていることが確認できます。
image.png

LonghornのUI上からスナップショットをとったり、Cronjobとしてスナップショットの作成を自動化することができますが、今回はバックアップが主題なので省略します。

LonghornでS3へのバックアップ設定

Longhornではバックアップの設定をするのに2つのステップが必要です。

  1. IAMロールでの権限付与
  2. Secret作成
  3. バックアップ先の設定

1.のIAMロールでの権限付与は遥か昔に行っているので今回は行いませんが、設定としてはここの通りに設定すれば完了です。もしくは全権限を与えるか。。。(個人で利用する分には問題ありませんが、業務ではやめましょう)

2.のSecet作成ではRancher UI上からでは、Secretsで作成をクリックし、Opaqueを選択してください。
image.png

そして、1.で権限を付与したユーザのAccess KeyとSecret Access Keyを入力します。
この時必ずNamespaceにLonghorn-systemを選択してください。
image.png

Secretを作成したら今度はLonghorn UI上での設定です。
LonghornのSettingGeneralから設定ができます。
この中でBackup TargetBackup Target Credential Secretに情報を入力してあげます。

バックアップターゲットでは、s3://<your-bucket-name>@<your-aws-region>/の形でURLを設定してあげる必要があります。また、バゲットの中でさらにディレクトリを切っている場合は、s3://<your-bucket-name>@<your-aws-region>/mypath/の形になります。
仮にtestというバケット名で東京リージョン、サブディレクトリが、rancher-backの場合は以下の様に入れてあげます。

s3://test@ap-northeast-1/rancher-back/

そしてSeceretの欄に先ほど作成したAWSの資格情報を保存したSecretの名前を入力します。
今回はaws-bukcupです。それぞれ入力したのが以下の画像となります。

image.png

入力後、一番したまでスクロールしSaveボタンを押します。
その後、Backupタブに遷移しエラーが表示されなければ正しく設定ができています。

ここまで来るとbackupが取得できる様になっています。
Volumeタブに遷移し、任意のVolumeを選択すると、Create Backupをクリックするとバックアップが作成されます。
image.png

作成後、Backupタブで作成したバックアップの確認ができます。
万がトラブルがあってもこのバックアップからデータをリストアできる様になります。
image.png

以上となります。
Rancherと組み合わせれば全ての手順をUI上から完結できる様になるのでとても便利ですね。
LonghornとRancherはFOSS(Free and OSS)ですので無料でフルの機能を利用できます。是非是非個人でも業務でも使ってみてはいかがですか。(サポートが必要な場合は、SUSEが商用サポートをしています。)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0