バックアップと復元
概要
CircleCI Server の運用と管理においては、別のクラスタへの移行や深刻な事象からの復元が必要な事態を想定して、バックアップを維持し、システムを復元する方法を検討する必要があります。
このドキュメントでは、推奨される CircleCI Server のインスタンスデータと状態のバックアップと復元方法を説明します。 設定方法については、 ステップ 4: ポストインストール を参照してください。
弊社では、バックアップと復元には Velero の使用を推奨しています。 この方法の利点は、アプリケーションのデータだけでなく、バックアップ時に Kubernetes クラスタの状態とリソースも復元されることです。 Velero の設定とインストールについては、 Server v4.x インストールガイド に記載されています。
CircleCI サービスのバックアップと復元は、Velero に依存しています。 クラスタが失われた場合、そのクラスタ内の Velero が正常に起動するまで、CircleCI を復元することはできません。 Velero が正常に起動すれば、CircleCI サービスを復元できます。 |
バックアップの作成
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 に合わせたノードのスケーリングが必要な場合があります。
ドキュメントの改善にご協力ください
このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、 GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。
- このページの編集をご提案ください (最初に「コントリビューションガイド」をご覧ください)。
- ドキュメントの問題点を報告する、またはフィードバックやコメントを送信するには、GitHub で issue を作成してください。
- CircleCI は、ユーザーの皆様の弊社プラットフォームにおけるエクスペリエンスを向上させる方法を常に模索しています。 フィードバックをお寄せいただける場合は、リサーチコミュニティにご参加ください。
サポートが必要ですか
CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。
または、 サポートサイト から、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。
CircleCI Documentation by CircleCI is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.