コンテナランナーのインストール (Kubernetes)
CircleCI のコンテナランナーをインストールする方法についてこのドキュメントでわかりやすく説明します。
前提条件
コンテナランナーをインストールしてジョブを実行するには、ルートアクセスおよび以下の設定とインストールが必要です。
-
Kubernetes 1.25+
-
Helm 3.x
-
他のワークロードがない状態の Kubernetes 名前空間
-
checkout ステップで、SSH でチェックアウトするように Git が設定されていること。使用する場合は、
port 22
からのアウトバウンド接続を許可するようにクラスタが設定されていることを確認してください。 -
コマンドラインからランナーをインストールする場合は、 CircleCI CLIを使用します。
セルフホストランナーの利用条件
Web アプリを介してマシンランナーをインストールする前に、 CircleCI ランナー規約 に同意する必要があります。 CircleCI Web アプリ の セルフホストランナー のセクションにアクセスするには、組織の管理者が Organization Settings > Self-Hosted Runners に行き、規約に同意する必要があります。
規約に同意すると、Self-Hosted Runners はサイドナビゲーションバーに常に表示されるようになります。
CircleCI は、組織の VCS 権限をミラーリングします。 組織の VCS の管理者が、CircleCI の管理者です。 不明な場合は、VCS の 管理者の権限を確認してください。
1. ネームスペースとリソースクラスの作成
セルフホストランナーをインストールするには、名前空間とリソースクラストークンを作成する必要があります。 リソース クラスとトークンを作成するには、VCS プロバイダーの組織管理者権限を持っている必要があります。 名前空間やリソースクラスについては、 コンセプト のページを参照してください。
お客様のランナーは、インベントリのページの左にあるナビゲーションバーで Self-Hosted Runners をクリックするとご覧いただけます。
-
CircleCI Web アプリ で、Self-Hostd Runners に移動します。
-
組織でセルフホストランナーを初めて使用する場合、ファーストステップとしてまず名前空間を作成する必要があります。 作成できる名前空間は、各組織につき 1 つのみです。 必須ではありませんが、 CircleCI のアカウント名を小文字で使用することを推奨します。 CircleCI は UI でデフォルトで推奨される名前空間として組織名を入力します。
もし、お客様の組織が既に Orb を使用しているのであれば、新しい名前空間を作らないでください。 その代わりに、お客様の組織が Orb に使用している名前空間を入力してください。
-
2つ目の入力フィールドには、セルフホスト・ランナー・リソース・クラスの名前を入力します。
-
リソースクラストークンをコピーし保存します。 セルフホストランナーはこのトークンを使って関連するリソースクラスの作業を要求します。
トークンは再取得できないので、必ず安全な場所に保管してください。 -
Select the Container tab for installation instructions specific to container runner. These instructions are also included in the next section of this installation guide.
Figure 1. Web アプリによるコンテナランナーのインストール -
新しいリソースクラスの設定コードが提供されます。 既存の
.circleci/config.yml
がある場合は、既存のjobs
セクションの下に新しいリソースクラスを追加してください。既存のファイルがない場合は、jobs
セクション全体を追加します。 既存の.circleci/config.yml
ファイルがない場合は、ファイルを作成し、すべてのコードをコピーします。
2. コンテナランナー インストール
-
以下のコマンドを実行して、コンテナランナー Helm のレポジトリを追加します:
helm repo add container-agent https://packagecloud.io/circleci/container-agent/helm
-
次に以下を実行します:
helm repo update
-
次に、以下のコマンドを実行し、
circleci
Kubernetes namespaceを作成します:kubectl create namespace circleci
-
values.yaml
ファイルという以下を含むファイルを作成します。agent: resourceClasses: namespace/my-rc: token: <resource_class_token>
-
最後に、以下のコマンドを実行します:
helm install container-agent container-agent/container-agent -n circleci -f values.yaml
コンテナランナーの設定例
クラスタにコンテナランナーをインストールしたら、Docker Executor を使ってインストールを検証する CircleCI ジョブを作成し、トリガーします。 コンテナランナーを使って実行する特定のジョブについて、以下のフィールドを設定する必要があります。
-
image:
-
resource_class: <namespace>/<resource-class>
以下は、ジョブ設定のシンプルなコード例です (cimg/base:2021.11
は、よく使用される CircleCI の Docker イメージです)。
version: 2.1
jobs:
build:
docker:
- image: cimg/base:2021.11
resource_class: <namespace>/<resource-class>
steps:
- checkout
- run: echo "Hi I'm on Runners!"
workflows:
build-workflow:
jobs:
- build
トラブルシューティング
セルフホストランナーのトラブルシューティングガイドの コンテナランナーのトラブルシューティングのセクション を参照してください。