JetBrains Space ヘルプ

Kubernetes のインストール

Space On-Premises の Kubernetes インストールは、より大きなワークロードの処理に適したスケーラブルなソリューションを提供します。クラスター自体は、独自の環境、Amazon Elastic Kubernetes Service、Google Kubernetes Engine、または Kubernetes をサポートするその他のクラウドサービスで実行できます。サポートされる Kubernetes の最小バージョンは 1.21 です。

Space On-Premises overview

概要

ユーザーは、モバイルアプリ、Web ブラウザー、デスクトップアプリなど、さまざまなクライアントから Space インスタンスにアクセスできます。すべての Space DNS 名は、同じロードバランサーの IP アドレスに解決される必要があります。ロードバランサーは、サーバー名表示を使用して、必要なサービスを実行する pods の 1 つにユーザーをルーティングします。

Space On-Premises design

Space オンプレミスインスタンスは、次のコンポーネントで構成されます。

  1. クラスターサービス :

    • Ingress コントローラー – オンデマンドで Space サブドメインを作成します。

    • 外部 DNS – 作成されたサブドメインを外部 DNS にリンクします。

    • 証明書マネージャー – オンデマンドでドメイン証明書を発行します。

  2. Space アプリケーションのコンポーネント :

    • Space 応用 – ユーザーインターフェースを含むすべての Space 機能を提供します。ユーザーは公開 URL 経由で利用できます。

    • VCS – Git サーバー。ユーザーは公開 URL 経由で利用できます。

    • コンピューティングサービス – Kubernetes クラスター内で Space Automation ワーカーを実行できるようにするサービス。

    • パッケージ – ユーザーがコンテナーレジストリ、NuGet フィード、Maven リポジトリなどのさまざまなリポジトリを作成できる Space パッケージリポジトリマネージャー。ユーザーはパブリック URL 経由で利用できます。

    • ラングサービス – Space ユーザーインターフェースにコードフォーマットサービスを提供する内部コンポーネント。ユーザーは利用できません。

  3. Space 応用サービスは、通常、ログ記録および監視サービスが含まれるオプションのコンポーネントです。これらのサービスは、Space On-Premises インストールには含まれていません。これは、ほとんどの企業が、クラスターレベルでアプリケーションを監視するためにどのサービスを使用する必要があるかについての規約をすでに持っているためです。

  4. Space 外部ストレージコンポーネントは、すべてのアプリケーションコンポーネント間で共有されるデータプールです。コンポーネントは、データの分離と分離を提供する方法で構成できます。各コンポーネントは他のコンポーネントとデータを共有しません。ストレージコンポーネントは、外部リンクを使用してクラスターに追加されます。ストレージコンポーネントはクラスターの一部にすることも、Space の外部でホストすることもできます。

    • Redis – イベントキューとして使用されます。

    • PostgreSQL – アプリケーションデータを保存する SQL データベース。

    • MinIO または別の S3 互換ストレージ - オブジェクトストレージ。

    • Elasticsearch – 検索データベース。

DNS

前述したように、ユーザークライアントは、パブリック URL 経由で Space ユーザーインターフェース、Space パッケージ、および VCS の 3 つの Space アプリケーションコンポーネントにのみアクセスできます。つまり、Space On-Premises インスタンスには、対応するサービス用のトップレベルドメイン名と 3 つのサブドメインが必要です。URL はクライアントが利用できる必要があります。例: トップレベルドメインが space.local であると提案する場合:

DNS for on-premises

セキュリティの観点から、多数の TLS 証明書 (サービスごとに 1 つ) を作成するか、すべてのサービスの共有 (ワイルドカード) 証明書を作成できます。

Pod スケジューリング

スケジューリングポリシーは、ワーカーが特定の Space アプリケーションコンポーネントで 1 つの pod のみを実行できることを意味します。例: ワーカーが Space パッケージを含む pod を実行する場合、Kubernetes スケジューラはもう 1 つの Space パッケージ pod をこのワーカーにデプロイしません。ただし、pod を別のコンポーネントとともにデプロイすることはできます。Git サーバーを使用します。

例: 実行時の pod 構成は次のようになります。

On-prem pod scheduling

アプリケーションコンポーネント: Space

Onprem Space Ui

Space アプリケーションコンポーネントは、ユーザーインターフェースと Space の主要な機能を提供します。クラスター内では、Space アプリケーションはデフォルトのポート 9084 (調整可能) 上の内部サービスとしてアクセス可能です。

Space アプリケーションコンポーネントは次の構成ファイルを使用します。

  1. cm:space-envs : ユーザーがプロセスに挿入できるカスタム環境変数を含む ConfigMap。

  2. cm:space-conf : プロセスの特定の構成設定を含む ConfigMap。これはこのアプリケーションに対してローカルです。

  3. cm:logs : ロギング構成を含む ConfigMap。この ConfigMap は、すべてのアプリケーションコンポーネントに共通です。

Space アプリケーションコンポーネントを構成するには、構成ファイルに加えて、いくつかのシークレットを使用する必要があります。secrets:space は、環境変数として指定された必要なアプリケーション構成を含む構成ファイルのグループです。各シークレットは、values.yaml ファイル内の対応するグループを表します。

  • space-automation-dsl

  • space-automation-logs

  • space-automation-worker

  • space-database

  • space-es-audit

  • space-es-metrics

  • space-es-search

  • space-eventbus

  • space-mail

  • space-main

  • space-oauth

  • space-organization

  • space-packages

  • space-recaptcha

  • space-s3

  • space-vcs

オプション:

  1. 水平 Pod オートスケーラーポリシーを構成できます。ポリシーを有効にするには、Kubernetes クラスター管理者が HPA コントローラーを構成する必要があります。

  2. サービスアカウントを設定することが可能です。

value.yaml の Space アプリケーション構成を参照してください

アプリケーションコンポーネント: VCS

VCS application component

VCS コンポーネントを使用すると、ユーザーは Space のプロジェクト用に Git リポジトリを作成できます。クラスター内では、コンポーネントはデフォルトのポート 19084 (調整可能) 上の内部サービスとして到達可能です。

VCS コンポーネントは次の構成ファイルを使用します。

  1. cm:vcs-envs : ユーザーがプロセスに挿入できるカスタム環境変数を含む ConfigMap。

  2. cm:vcs-conf : プロセスの特定の構成設定を含む ConfigMap。これはこのアプリケーションに対してローカルです。

  3. cm:logs : ロギング構成を含む ConfigMap。この ConfigMap は、すべてのアプリケーションコンポーネントに共通です。

設定ファイルに加えて、VCS コンポーネントを設定するにはいくつかのシークレットを使用する必要があります。secrets:vcs は、環境変数として指定された必要なアプリケーション構成を含む構成ファイルのグループです。各シークレットは、values.yaml ファイル内の対応するグループを表します。

  • vcs-database

  • vcs-eventbus

  • vcs-main

  • vcs-s3

オプション:

  1. 水平 Pod オートスケーラーポリシーを構成できます。ポリシーを有効にするには、Kubernetes クラスター管理者が HPA コントローラーを構成する必要があります。

  2. サービスアカウントを設定することが可能です。

value.yaml の VCS 設定を参照してください

アプリケーションコンポーネント: コンピューティングサービス

Packages component

Compute-service は、オートメーションジョブを実行するマシンである Space Automation ワーカーを管理します。例: サービスはオンデマンドで (CI/CD ジョブを実行するために) クラスター内にワーカーを作成し、不要になったらワーカーを削除します。デフォルトでは、Compute-service は無効になっています。デフォルトの Space オンプレミスインストールでは、セルフホスト型ワーカー (Space ユーザーがホストするマシン) の使用が暗示されます。

クラスター内では、コンポーネントはデフォルトのポート 8084 (調整可能) で内部サービスとしてアクセスできます。

Compute-service コンポーネントは次の構成ファイルを使用します。

  1. cm:computeservice-envs : ユーザーがプロセスに挿入できるカスタム環境変数を含む ConfigMap。

  2. cm:computeservice-conf : プロセスの特定の構成設定を含む ConfigMap。これはこのアプリケーションに対してローカルです。

  3. cm:logs : ロギング構成を含む ConfigMap。この ConfigMap は、すべてのアプリケーションコンポーネントに共通です。

Compute-service コンポーネントを構成するには、構成ファイルに加えて、いくつかのシークレットを使用する必要があります。secrets:computeservice は、環境変数として指定された必要なアプリケーション構成を含む構成ファイルのグループです。

オプション:

  • 水平 Pod オートスケーラーポリシーを構成できます。ポリシーを有効にするには、Kubernetes クラスター管理者が HPA コントローラーを構成する必要があります。

  • サービスアカウントを設定することが可能です。

value.yaml の Compute-service 構成を参照してください

アプリケーションコンポーネント: 自動化ジョブ

Automation ジョブは、Compute サービスによって起動される Kubernetes ジョブです。

オプション:

アプリケーションコンポーネント: パッケージ

Packages component

Space Packages は、パッケージリポジトリマネージャーです。クラスター内では、コンポーネントはデフォルトのポート 9390 (調整可能) で内部サービスとしてアクセスできます。

Packages コンポーネントは次の構成ファイルを使用します。

  1. cm:packages-envs : ユーザーがプロセスに挿入できるカスタム環境変数を含む ConfigMap。

  2. cm:packages-conf : プロセスの特定の構成設定を含む ConfigMap。これはこのアプリケーションに対してローカルです。

  3. cm:logs : ロギング構成を含む ConfigMap。この ConfigMap は、すべてのアプリケーションコンポーネントに共通です。

構成ファイルに加えて、パッケージコンポーネントを構成するにはいくつかのシークレットを使用する必要があります。secrets:packages は、環境変数として指定された必要なアプリケーション構成を含む構成ファイルのグループです。各シークレットは、values.yaml ファイル内の対応するグループを表します。

  • packages-database

  • packages-es-search

  • packages-eventbus

  • packages-main

  • packages-oauth

  • packages-organization

  • packages-s3

  • packages-space

  • packages-oauth

オプション:

  1. 水平 Pod オートスケーラーポリシーを構成できます。ポリシーを有効にするには、Kubernetes クラスター管理者が HPA コントローラーを構成する必要があります。

  2. サービスアカウントを設定することが可能です。

value.yaml のパッケージ構成を参照してください

アプリケーションコンポーネント: ラングサービス

Langservice app component

Lang サービスは、Space ユーザーインターフェースのコード形式を提供する内部コンポーネントです。クラスター内では、コンポーネントはデフォルトのポート 8095 (調整可能) で内部サービス svc:langservice としてアクセス可能です。

Lang-service コンポーネントは次の構成ファイルを使用します。

  1. cm:langservice-envs : ユーザーがプロセスに挿入できるカスタム環境変数を含む ConfigMap。

  2. cm:langservice-conf : プロセスの特定の構成設定を含む ConfigMap。これはこのアプリケーションに対してローカルです。

  3. cm:logs : ロギング構成を含む ConfigMap。この ConfigMap は、すべてのアプリケーションコンポーネントに共通です。

オプション:

  1. 水平 Pod オートスケーラーポリシーを構成できます。ポリシーを有効にするには、Kubernetes クラスター管理者が HPA コントローラーを構成する必要があります。

  2. サービスアカウントを設定することが可能です。

value.yaml の Lang-service 構成を参照してください

関連ページ:

自動化 (CI/CD)

自動化は、CI/CD を担当する JetBrains Space の一部です。これにより、プロジェクトをビルド、テスト、デプロイできます。基本自動化を始めましょう、概念、ジョブとステップ、デプロイ、実行環境、パラメーターとシークレット、サンプル Android、Dart、Docker、Helm チャート、Java および Kotlin 用の Gradle、Java および Kotlin 用の Maven、.NET と .NET Core、.NET フレームワーク、Node.js、npm、Pytho...

セルフホスト型ワーカー

セルフホスト型ワーカーは、Windows、Linux、macOS 上の独自のマシンで実行できる軽量エージェントです。セルフホスト型ワーカーは Space Automation に接続し、ジョブとプロジェクトのソースコードを取得してジョブを実行し、結果を Space にレポートします。セルフホスト型ワーカーを使用すると、コンテナーでは不可能な CI/CD ワークフローを実行できます。例:Windows 上で完全な .NET フレームワークアプリケーションを構築します。特定のハードウェアを使用する...

Kubernetes クラスターに Space をインストールする

このガイドでは、Helm を使用してローカル Kubernetes クラスターに Space On-Premises をインストールする方法を説明します。インストール要件:Kubernetes バージョン 1.21 以降 Helm バージョン 3.6.0 以降クラスターワーカークラスターには少なくとも 5 つのワーカーがあります。OS: Linux、プラットフォーム: x86_64/amd64、推奨される最小リソース: 4 つの CPU コアと 8GB のメモリ、名前空間専用の Kubernetes...