無料でビルドを開始
CircleCI.comアカデミーブログコミュニティサポート

バックアップと復元

11 months ago1 min read
Server v4.x
サーバー管理者
このページの内容

概要

CircleCI Server の運用と管理においては、別のクラスタへの移行や深刻な事象からの復元が必要な事態を想定して、バックアップを維持し、システムを復元する方法を検討する必要があります。

このドキュメントでは、推奨される CircleCI Server のインスタンスデータと状態のバックアップと復元方法を説明します。 設定方法については、 ステップ 4: ポストインストール を参照してください。

弊社では、バックアップと復元には Velero の使用を推奨しています。 この方法の利点は、アプリケーションのデータだけでなく、バックアップ時に Kubernetes クラスタの状態とリソースも復元されることです。 Velero の設定とインストールについては、 Server v4.x インストールガイド に記載されています。

バックアップの作成

K8S_NS=$(helm list -o yaml  | yq '.[].namespace')
CHART=$(helm list -o yaml  | yq '.[].chart' )
REV=$(helm list -o yaml  | yq '.[].revision')
RANDOM_STR=$(cat /dev/urandom | env LC_ALL=C tr -dc 'a-z0-9' | head -c 8)

velero backup create "${K8S_NS}-${RANDOM_STR}" --include-namespaces "${K8S_NS}" --labels "chart--rev=${CHART}--${REV}"

バックアップの復元

# すべての既存のバックアップを表示する
velero backup get --show-labels

# 特定のバックアップを復元する
velero restore create --include-namespaces <circleci-namespace> --from-backup <backup-name>

バックアップのスケジュール化

バックアップスケジュールの作成については、 Velero のドキュメント を参照してください。

トラブルシューティング

バックアッププロセスや復元プロセスでエラーが発生した場合

バックアップまたは復元プロセスでエラーが発生した場合は、まず Velero ログを確認してください。 下記コマンドの結果 4XX エラーが見つかった場合、ストレージバケットへのアクセスの問題が原因の可能性があります。

  • バケットが存在していることと、想定するリージョンにあることを確認します。

  • Velero に指定した認証情報でバケットにアクセスできることを確認します。

  • 問題が解決しない場合は、新しいバケット情報を指定して Velero のインストールコマンドを再び実行する必要があります。

また、velero 名前空間にある Pod のステータスを確認します。

$ kubectl get pods --namespace velero
NAME                      READY   STATUS    RESTARTS   AGE
restic-5vlww              1/1     Pending   0          10m
restic-94ptv              1/1     Running   0          10m
restic-ch6m9              1/1     Pending   0          10m
restic-mknws              1/1     Running   0          10m
velero-68788b675c-dm2s7   1/1     Running   0          10m

上記の例では、いくつかの restic Pod が保留状態です。これは利用可能な CPU リソースまたはメモリリソースがノードに割り当てられるまで待機していることを意味します。 この場合、restic に合わせたノードのスケーリングが必要な場合があります。


Suggest an edit to this page

Make a contribution
Learn how to contribute