CircleCI Server v3.x の運用方法

以下のガイドは、CircleCI Server 3.x の保守・監視を行う CircleCI Server Operator (責任者) に役立つ情報が含まれます。

本ページの内容は、「https://circleci.com/docs/ja/2.0/server-3-overview[CircleCI Server 3.x の概要]」を先に読んでいることを前提としています。

CircleCI Server では、https://www.nomadproject.io/[Nomad スケジューラ]を使用して CI ジョブのスケジュールを設定します。 Nomad コントロール プレーンは Kubernetes 内で動作するのに対し、Nomad クライアントはクラスタ外部にプロビジョニングされます。 Nomad のクライアントは、Nomad のコントロール プレーンと出力プロセッサ、VM サービスにアクセスする必要があります。

CircleCI Server は Nomad クライアント上で Docker ジョブを実行しますが、専用の VM でジョブを実行することもできます。 これらのVMジョブはNomad クライアントによって制御されます。そのため Nomad クライアントは、SSH 接続用にポート 22、リモート Docker ジョブ用にポート 2376 で VM にアクセスできる必要があります。

ジョブのアーティファクトと出力は、Nomad ジョブからオブジェクト ストレージ (S3、GCS、またはその他のサポートされているオプション) に直接送信されます。 オブジェクト ストレージには、監査ログやアプリケーションのその他のアイテムも保存されます。そのため、Kubernetes クラスタと Nomad クライアントの両方がオブジェクト ストレージにアクセスできる必要があります。

ビルド環境

CircleCI Server 3.x では、プライマリ ジョブ スケジューラとして Nomad を使用します。 ジョブ スケジューラ、およびクライアントとクラスタの基本的な操作方法については、「https://circleci.com/docs/ja/2.0/nomad/[Nomad クラスタの操作ガイド]」を参照してください。

デフォルトでは、CircleCI の Nomad クライアントは、プロジェクトの .circleci/config.yml ファイルでジョブごとに構成されている Executor に従って、コンピューティング リソースを自動的にプロビジョニングします。

Nomad クライアント

Nomad クライアントは実行後に状態を保持しないため、必要に応じてコンテナ数を増減することができます。

すべてのビルドを処理できる十分な数の Nomad クライアントが確実に実行されるようにするには、キューイングされているビルドを追跡し、必要に応じて Nomad クライアント マシンの数を増やして負荷を分散させます。 メトリクス追跡の詳細についてはメトリクスと監視に関するページをご覧ください。

ジョブのリソース クラスで必要なリソースがNomad クライアントのインスタンス タイプで利用可能な量を超える場合、ジョブは保留状態のままになります。 Nomad クライアントのインスタンス タイプを小さいものにすればコストを削減できますが、CircleCI で使用できる Docker リソース クラスが制限されます。 利用可能な Docker リソース クラスを参照して、最適なものを判断してください。 デフォルトのインスタンス タイプでは、最大で xlarge リソース クラスを実行できます。

Nomad クライアントのリソースを最適に使用するためのオプションについては、https://www.nomadproject.io/docs/install/production/requirements#resources-ram-cpu-etc[Nomad ドキュメント]を参照してください。

Nomad クライアント マシンの最大サイズは RAM 128GB/64 CPU です。 これよりも大きなNomad クライアント マシンを使用したい場合は、CircleCI のアカウント担当者にお問い合わせください。

Nomad のポート要件の詳細については、「https://circleci.com/docs/ja/2.0/server-3-install-hardening-your-cluster/?section=server-administration#nomad-clients[Nomad クライアント]」セクションをご覧ください。

GitHub

CircleCI では、GitHub または GitHub Enterprise を ID プロバイダーとして使用しています。 また GitHub Enterprise では、https://docs.github.com/en/github-ae@latest/admin/authentication/about-identity-and-access-management-for-your-enterprise[SAML または SCIM] を使って、外部の ID プロバイダーでユーザーを管理することができます。

CircleCI では、セットアップ後の URL やバックエンドの GitHub インスタンスの変更には対応していません。

以下の表に、GitHub を実行するマシンで Services および Nomad クライアント インスタンスと通信する際に使用されるポートを示します。

ソース ポート 用途

Services

22

Git アクセス

Services

80 または 443

API アクセス

Nomad クライアント

22

Git アクセス

Nomad クライアント

80 または 443

API アクセス



Help make this document better

This guide, as well as the rest of our docs, are open-source and available on GitHub. We welcome your contributions.