1
1
---
2
-
3
2
contentTags:
4
3
platform:
5
4
- Server v3.x
@@ -12,20 +11,19 @@ contentTags:
12
11
:page-description: このドキュメントでは、CircleCI Server のインスタンスデータと状態のバックアップと復元方法についての推奨事項を説明します。
13
12
:icons: font
14
13
:toc: macro
15
-
16
14
:toc-title:
17
15
18
16
toc::[]
19
17
20
18
== 概要
21
-
22
19
_バックアップと復元は、CircleCI Server v3.1.0 以上で利用できます。_
23
20
24
21
CircleCI Server の運用と管理においては、別のクラスタへの移行や深刻な事象からの復元が必要な事態を想定して、バックアップを維持し、システムを復元する方法を検討する必要があります。
25
22
26
23
このドキュメントでは、CircleCI Server のインスタンスデータと状態のバックアップと復元方法についての推奨事項を説明します。
27
24
28
- CircleCI Server は、 https://kots.io/[KOTS] を使用して管理します。KOTS では、バックアップと復元に https://velero.io/[Velero] を使用しています。 この方法のメリットは、アプリケーションのデータだけでなく、バックアップ時点の Kubernetes クラスタの状態とリソースも復元することです。
25
+ CircleCI Server は、 https://kots.io/[KOTS] を使用して管理します。KOTS では、バックアップと復元に https://velero.io/[Velero] を使用しています。
26
+ この方法のメリットは、アプリケーションのデータだけでなく、バックアップ時点の Kubernetes クラスタの状態とリソースも復元することです。
29
27
つまり、管理者コンソールの設定や、クラスタに加えたカスタマイズ内容も復元できるのです。
30
28
31
29
NOTE: CircleCI サービスのバックアップと復元は、Velero に依存しています。 クラスタが失われた場合、そのクラスタ内の Velero が正常に起動するまで、CircleCI を復元することはできません。 Velero が正常に起動すれば、CircleCI サービスを復元できます。
@@ -62,7 +60,6 @@ CircleCI Server のバックアップは、 https://kots.io/[KOTS] を介して
62
60
* AWS SETUP *
63
61
64
62
////
65
-
66
63
== AWS での CircleCI Server 3.x のバックアップ
67
64
68
65
以下の手順では、プロバイダーが AWS であり、上記の <<prerequisites, 前提条件>> を満たしていることを前提としています。
@@ -80,7 +77,6 @@ aws s3api create-bucket \
80
77
--region $REGION \
81
78
--create-bucket-configuration LocationConstraint=$REGION
82
79
----
83
-
84
80
NOTE: `us-east-1` では、 https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html#API_CreateBucket_RequestBody[LocationConstraint] がサポートされていません。 `us-east-1` リージョンを使用している場合、バケットの設定は省略してください。
85
81
86
82
=== 手順 2 - Velero の権限の設定
@@ -155,7 +151,6 @@ aws iam create-access-key --user-name velero
155
151
----
156
152
157
153
このコマンドの結果は以下のようになります。
158
-
159
154
[source,json]
160
155
----
161
156
{
@@ -177,16 +172,14 @@ aws iam create-access-key --user-name velero
177
172
aws_access_key_id=<AWS_ACCESS_KEY_ID>
178
173
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
179
174
----
180
-
181
175
ここで、`AWS_ACCESS_KEY_ID` プレースホルダーと `AWS_SECRET_ACCESS_KEY` プレースホルダーには、前の手順の `create-access-key` リクエストで返された値を指定します。
182
176
183
177
=== 手順 3 - Velero のインストールと起動
184
178
185
179
* 以下の `velero install` コマンドを実行します。 これにより、`velero` という名前空間が作成され、Velero を実行するのに必要なリソースがすべてインストールされます。
186
180
必ず <<Step 2 - Setup permissions for Velero, 手順 2>> で作成した、AWS 認証情報が含まれる正しいファイル名を指定してください。
187
181
188
- NOTE: KOTS のバックアップには、 https://restic.net/[restic] が必要です。
189
- Velero のインストール時に、以下に示すように `--use-restic` フラグを設定してください。
182
+ NOTE: KOTS のバックアップには、 https://restic.net/[restic] が必要です。Velero のインストール時に、以下に示すように `--use-restic` フラグを設定してください。
190
183
191
184
[source, bash]
192
185
----
@@ -247,27 +240,30 @@ CircleCI Server を GKE クラスタ内で実行している場合、RBAC オブ
247
240
----
248
241
gcloud config list
249
242
----
243
+
250
244
. プロジェクトが適切に参照されていれば、以下のように変数を設定します。
251
245
+
252
246
[source,bash]
253
247
----
254
248
PROJECT_ID=$(gcloud config get-value project)
255
249
----
250
+
256
251
. 以下のコマンドを実行して、サービス アカウントを作成します。
257
252
+
258
253
[source,bash]
259
254
----
260
255
gcloud iam service-accounts create velero \
261
256
--display-name "Velero service account"
262
257
----
263
- +
264
258
NOTE: Velero がインストールされたクラスタを複数実行している場合は、サービスアカウントに対して、上記の例で示している `velero` ではなく、具体的な名前を付けることをお勧めします。
259
+
265
260
. 以下のコマンドを実行して、サービスアカウントが正常に作成されたことを確認します。
266
261
+
267
262
[source,bash]
268
263
----
269
264
gcloud iam service-accounts list
270
265
----
266
+
271
267
. 次に、サービスアカウントの電子メール アドレスを変数に格納します。
272
268
+
273
269
[source,bash]
@@ -276,8 +272,8 @@ SERVICE_ACCOUNT_EMAIL=$(gcloud iam service-accounts list \
276
272
--filter="displayName:Velero service account" \
277
273
--format 'value(email)')
278
274
----
279
- +
280
275
サービスアカウントに付けた表示名に合わせて、必要に応じてコマンドを変更してください。
276
+
281
277
. 必要な権限をサービスアカウントに付与します。
282
278
+
283
279
[source,bash]
@@ -310,18 +306,17 @@ gsutil iam ch serviceAccount:$SERVICE_ACCOUNT_EMAIL:objectAdmin gs://${BUCKET}
310
306
==== オプション 1: JSON キー ファイル
311
307
312
308
サービスアカウントとしてアクションを実行できるように Velero を認証するには、JSON 認証情報ファイルを Velero に渡します。 それにはまず、以下のコマンドを実行してキーを作成します。
313
-
314
309
[source,bash]
315
310
----
316
311
gcloud iam service-accounts keys create credentials-velero \
317
312
--iam-account $SERVICE_ACCOUNT_EMAIL
318
313
----
319
-
320
314
このコマンドを実行すると、`credentials-velero` という名前のファイルがローカル作業ディレクトリに作成されます。
321
315
322
316
==== オプション 2: Workload Identity
323
317
324
- クラスタで既に https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity[Workload Identity] を使用している場合は、先ほど作成した GCP サービスアカウントを Velero の Kubernetes サービスアカウントにバインドします。 この場合、GCP サービスアカウントには、上記で指定済みの権限に加え、`iam.serviceAccounts.signBlob` ロールも必要です。
318
+ クラスタで既に https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity[Workload Identity] を使用している場合は、先ほど作成した GCP サービスアカウントを Velero の Kubernetes サービスアカウントにバインドします。
319
+ この場合、GCP サービスアカウントには、上記で指定済みの権限に加え、`iam.serviceAccounts.signBlob` ロールも必要です。
325
320
326
321
=== 手順 3 - Velero のインストールと起動
327
322
@@ -379,7 +374,6 @@ restic はデーモンセットなので、Kubernetes クラスタ内のノー
379
374
* S3-COMPATIBLE SETUP *
380
375
381
376
////
382
-
383
377
== S3 互換ストレージでの CircleCI Server 3.x のバックアップ
384
378
385
379
以下の手順では、S3 互換オブジェクトストレージ (AWS S3 に限らない) をバックアップに使用していることが前提です。
@@ -391,6 +385,7 @@ restic はデーモンセットなので、Kubernetes クラスタ内のノー
391
385
392
386
最初に、ストレージ プロバイダーに接続できるよう https://docs.min.io/minio/baremetal/reference/minio-mc.html[`mc`] を設定します。
393
387
388
+
394
389
[source,bash]
395
390
----
396
391
# エイリアスは任意の名前でかまいませんが、以降のコマンドでも同じ値を使用してください。
@@ -458,8 +453,7 @@ aws_secret_access_key=<YOUR_VELERO_SECRET_ACCESS_KEY>
458
453
459
454
以下の `velero install` コマンドを実行します。 これにより、`velero` という名前空間が作成され、Velero を実行するのに必要なリソースがすべてインストールされます。
460
455
461
- NOTE: KOTS のバックアップには、 https://restic.net/[restic] が必要です。
462
- Velero のインストール時に、以下に示すように `--use-restic` フラグを設定してください。
456
+ NOTE: KOTS のバックアップには、 https://restic.net/[restic] が必要です。Velero のインストール時に、以下に示すように `--use-restic` フラグを設定してください。
463
457
464
458
[source, bash]
465
459
----
0 commit comments