コンピューティングプラットフォーム
コンピューティングプラットフォームは、ユーザー開発環境を実行するために使用されるインフラストラクチャを定義します。これは、特定の Kubernetes オペレーター、移動サーバー、リレーサーバーによって管理される開発環境クラスタで構成される構成エンティティです。コンピューティングプラットフォームのコンセプトは、CodeCanvas インストールのマルチリージョン性に対応しており、これらのコンポーネントの配置はエンドユーザーエクスペリエンスにとって非常に重要です。たとえば、エンドユーザーに近いリージョンに構成されたコンピューティングプラットフォームは、レイテンシを低減し、開発環境とのインタラクションを向上させます。
コンピューティングプラットフォームを CodeCanvas に接続する
ヘッダーナビゲーションで管理を選択し、サイドバーメニューでコンピューティングプラットフォームを選択します。
新規接続をクリックし、プラットフォーム名前とその他の設定を指定します。
Kubernetes 名前空間 – 開発環境が稼働している Kubernetes 名前空間。名前空間はすでに存在する場合もありますが、そうでない場合は接続時に作成されます。
リレーサーバー – ユーザーマシンと開発環境間の安全な接続を確立するために使用されるリレーサーバーです。CodeCanvas の一般的なインストールでは、リレーサーバーは CodeCanvas アプリケーションと同じクラスター内で実行されます。使用するには、デフォルトリレーを選択してください。または、カスタムリレーサーバーを設定して使用することもできます。
移動サーバー – 開発環境への SSH 接続に使用される移動サーバーです。CodeCanvas の一般的なインストールでは、移動サーバーは CodeCanvas アプリケーションと同じクラスター内で実行されます。これを使用するには、デフォルト移動を選択してください。または、カスタム移動サーバーを設定して使用することもできます。
Pod テンプレート YAML –ワーカー、pod 用の pod テンプレートを記述した YAML ファイルです。このテンプレートをカスタマイズすることで、ワーカー、pods がインフラの要件をより適切に満たせるようになります。CodeCanvas は、pods が正しく動作するために必要なラベル、アノテーション、環境変数、ボリュームをすべて自動的に追加します。そのため、pod テンプレートにカスタム設定を追加するだけで済みます。
例: 次のスニペットは、pod テンプレートにラベル、アノテーション、環境変数を追加する方法を示しています。
apiVersion: v1 kind: Pod metadata: labels: codecanvas: true annotations: codecanvas: true spec: containers: - name: worker-main env: - name: CODECANVAS value: true restartPolicy: Neverワーカー pod 自体は開発環境ではありません。これは、ネストされた開発環境コンテナーを起動する管理コンテナーです。ワーカーコンテナーから開発環境コンテナーに環境変数やファイルを渡す必要がある場合は、以下の特別な環境変数を使用できます。
環境変数の
WORKER_STEP_CONTAINER_PROPAGATION_ENV_VAR_KEYSファイルへのパスの
WORKER_STEP_CONTAINER_PROPAGATION_PATHS
例: 次の構成は、
MY_ENV_VAR_1およびMY_ENV_VAR_2環境変数を pod から dev 環境コンテナーに伝播します。apiVersion: v1 kind: Pod spec: containers: - name: worker-main env: - name: WORKER_STEP_CONTAINER_PROPAGATION_ENV_VAR_KEYS value: "MY_ENV_VAR_1;MY_ENV_VAR_2"このテンプレートは、コンピューティングプラットフォーム内のすべてのワーカー、pods に適用されます。インスタンスタイプごとに個別の設定が必要な場合は、インスタンスタイプレベルで Pod テンプレート YAML を指定できます。
保存をクリックします。プラットフォームはリストに追加されますが、まだ CodeCanvas に接続されていないため、非アクティブ状態になります。
新しく追加されたプラットフォームを開きます。
プラットフォームページには、開発環境クラスタに CodeCanvas オペレータをインストールするためのスニペットが掲載されています。オペレータは CodeCanvas アプリケーションと通信し、開発環境クラスタ内のワーカー pods を起動 / 停止します。スニペットは以下のようになります。
kubectl apply -f - <<EOF apiVersion: v1 kind: Namespace metadata: name: codecanvas-operator-somenamespace --- apiVersion: v1 kind: Secret metadata: name: codecanvas-operator-secret namespace: codecanvas-operator-somenamespace type: Opaque data: # Base64 encoded JWT private key OPERATOR_JWTPRIVATEKEY: encodedPrivateKey EOF helm upgrade --install --atomic \ codecanvas-operator oci://registry.jetbrains.team/p/rdo/nightly-charts/codecanvas-operator --version 2025.3.3 \ --namespace codecanvas-operator-testnamespace \ --set operator.serverUrl={{ COMPUTE_SERVER_URL_PLACEHOLDER }} \ --set operator.targetNamespace=testnamespace \ --set operator.secret.existingSecretName=codecanvas-operator-secretCodeCanvas アプリケーションとオペレーターが相互に通信するには、キーペアが必要です。公開鍵は CodeCanvas に保存され、秘密鍵はオペレーターによって使用されます。
キーペアを生成するには、キーを生成するをクリックします。秘密鍵は自動的にスニペットに追加されます。
(オプション)スニペットを更新して、デフォルトのネットワークポリシーを変更します。デフォルトでは、開発環境へのすべての受信トラフィック(開発環境間のトラフィックを含む)がブロックされ、すべての送信トラフィックが許可されます。ネットワークポリシーを変更する方法を学ぶ
スニペットをクリップボードにコピーします。
スニペットを実行して、開発環境クラスターに構成を適用します。
接続状態を確認するには、接続のテストをクリックします。すべてのチェックで成功が返される必要があります。
接続を凍結または削除する
接続を削除するには、プラットフォーム設定ページで「削除」をクリックしてください。これにより、接続と、このプラットフォームで実行されているすべての開発環境が完全に削除されます。
特定のプラットフォームでの新しい開発環境の作成を一時的に停止したい場合は、プラットフォーム設定ページで「フリーズ」をクリックしてください。ただし、既存の開発環境には影響しません。
あるプラットフォームから別のプラットフォームに移行する
インフラストラクチャをアップグレードする際に、コンピューティングプラットフォームを別のプラットフォームに移行する必要が生じる場合があります。既存の開発環境を移行することはできませんが、構成データ、つまり廃止されたプラットフォームを使用するインスタンスタイプと、それらのインスタンスタイプに基づく開発環境テンプレートは移行できます。
以下の手順では、使用を停止するプラットフォームを deprecated、新しいプラットフォームを new と呼びます。
deprecatedプラットフォームをフリーズします。管理 | コンピューティングプラットフォームでプラットフォーム設定を開き、フリーズをクリックします。deprecatedプラットフォームを使用するインスタンスタイプの名前を変更します。プラットフォーム設定で、インスタンスタイプの横にあるリストの表示をクリックします。

すべてのインスタンスタイプを選択するには、すべて選択をクリックします。
名前変更をクリックし、開いたダイアログでインスタンスタイプ名の接頭辞または接尾辞を指定します。例:
[deprecated]接頭辞を追加できます。
名前変更をクリックします。
deprecatedインスタンスタイプを使用する開発環境テンプレートの名前を変更します。プラットフォーム設定で、テンプレートの横にあるリストの表示をクリックします。
すべてのテンプレートを選択するには、すべて選択をクリックします。
名前変更をクリックし、開いたダイアログでテンプレート名の接頭辞または接尾辞を指定します。例:
[deprecated]接頭辞を追加できます。名前変更をクリックします。
新しいインスタンスタイプを作成するには、
[deprecated]インスタンスタイプを使用します。ヘッダーナビゲーションで管理を選択し、サイドバーメニューでインスタンスタイプを選択します。
各
[deprecated]インスタンスタイプについて: インスタンスタイプ設定を開き、コピーをクリックします。ダイアログでインスタンスタイプの新しい名前を指定し、newまたはコンピューティングプラットフォームを選択します。作成をクリックします。
新しいテンプレートを作成するには、
[deprecated]テンプレートを使用します。ヘッダーナビゲーションで管理を選択し、サイドバーメニューでテンプレートを選択します。
各
[deprecated]テンプレートについて: コピーをクリックします。ダイアログでテンプレートの新しい名前を指定し、新しいインスタンスタイプを選択します。テンプレートの作成を完了します。
関連ページ:
アーキテクチャー
CodeCanvas は、スケーラビリティと信頼性を重視し、Kubernetes クラスターへのデプロイ向けに設計されています。Amazon EKS、Azure AKS、Google GKE などの主要なクラウドプロバイダーへのインストールを想定しています。オンプレミスインフラストラクチャのサポートも予定されています。クラスター:典型的な CodeCanvas インストールは、CodeCanvas アプリケーションクラスターと任意の数の開発環境クラスターで構成されます。CodeCanvas ク...
リレーサーバー
リレーサーバーは、開発者のローカルマシン上の JetBrains IDE クライアントとリモート環境で動作する IDE バックエンド間の仲介役として機能するコンポーネントです。開発環境へのインバウンド接続がファイアウォールやその他のセキュリティポリシーによって制限されている場合でも、安全な通信を可能にします。開発環境で JetBrains IDE を使用する場合は、CodeCanvas デプロイに少なくとも 1 つのリレーサーバーが必要です。設定によっては、リレーサーバーがすでにインストールされ...
ライセンスの有効化
CodeCanvas 製品ライセンス:現在、CodeCanvas ライセンスは、JetBrains のセールス部門に連絡するか、JetBrains アカウント経由で購入することで取得できます。使用量の計算方法 CodeCanvas の使用量は、1 日のアクティブユーザー数(1 日中に少なくとも 1 つの開発環境を起動したユーザー)に基づいて計算されます。1 日のユーザー数の上限は、CodeCanvas ライセンスによって決まります。ライセンスにはいつでもユーザーを追加できます。なお、ライセンスで...