2021年5月30日日曜日

Gitlab の helm chart でバックアップをオブジェクトストレージにアップロードする方法

Gitlab の helm chart でバックアップをオブジェクトストレージにアップロードする方法

概要

Gitlab helm chart のバックアップはデフォルトだと k8s 上に展開された minio になります オブジェクトストレージを指定することもできるのでその方法を紹介します

環境

  • helm v3.5.2
  • k8s v1.20.1
  • Gitlab 13.12.0

.s3cfg ファイルの作成

作成方法は何でも OK です 一番簡単なのは以下かなと思います

アクセスキーなど必要な情報をインタラクティブに入力することで ~/.s3cfg ファイルができます

  • s3cmd --configure

.s3cfg ファイルを secret に登録する

task-runner が .s3cfg を使うので secret に登録します

  • kubectl create secret generic gitlab-s3cmd-secret -n gitlab --from-file=config=/root/.s3cfg

values.yaml の設定

バックアップ用のオブジェクトストレージのバケットの指定と task-runner が参照する secret を設定します 必要な箇所だけ紹介しています

gitlab:  
  task-runner:  
    backups:  
      objectStorage:  
        config:  
          secret: gitlab-s3cmd-secret  
          key: config

global:  
  appConfig:  
    backups:  
      bucket: hawk-backups  
      tmpBucket: hawk-tmp

反映する

helm upgrade なり install をして values.yaml の設定を反映させましょう

  • helm upgrade gitlab gitlab/gitlab --namespace gitlab --timeout 600s -f values.yaml

動作確認

実際にバックアップを取得してオブジェクトストレージ側にバックアップファイルが作成されているか確認しましょう

  • kubectl get pods -lrelease=gitlab,app=task-runner -n gitlab
NAME                                  READY   STATUS    RESTARTS   AGE  
gitlab-task-runner-57467bf498-8cfmf   1/1     Running   0          6m27s
  • kubectl exec gitlab-task-runner-57467bf498-8cfmf -n gitlab – backup-utility
[DONE] Backup can be found at s3://hawk-backups/1622077898_2021_05_27_13.12.0-ee_gitlab_backup.tar

最後に

helm chart の場合いくつかの箇所 (registry or backup or uploads etc…)でオブジェクトストレージを使えますがそれぞれでシークレットの書き方が異なるので注意してください

0 件のコメント:

コメントを投稿