Kubernetes のインストール
Space On-Premises の Kubernetes インストールは、より大きなワークロードの処理に適したスケーラブルなソリューションを提供します。クラスター自体は、独自の環境、Amazon Elastic Kubernetes Service、Google Kubernetes Engine、または Kubernetes をサポートするその他のクラウドサービスで実行できます。サポートされる Kubernetes の最小バージョンは 1.21 です。
![Space オンプレミスの概要 Space On-Premises overview](https://resources.jetbrains.com/help/img/space/onpremK8sCluster.png)
概要
ユーザーは、モバイルアプリ、Web ブラウザー、デスクトップアプリなど、さまざまなクライアントから Space インスタンスにアクセスできます。すべての Space DNS 名は、同じロードバランサーの IP アドレスに解決される必要があります。ロードバランサーは、サーバー名表示を使用して、必要なサービスを実行する pods の 1 つにユーザーをルーティングします。
![Space オンプレミス設計 Space On-Premises design](https://resources.jetbrains.com/help/img/space/onpremStructure.png)
Space オンプレミスインスタンスは、次のコンポーネントで構成されます。
クラスターサービス :
Ingress コントローラー – オンデマンドで Space サブドメインを作成します。
外部 DNS – 作成されたサブドメインを外部 DNS にリンクします。
証明書マネージャー – オンデマンドでドメイン証明書を発行します。
Space アプリケーションのコンポーネント :
Space 応用 – ユーザーインターフェースを含むすべての Space 機能を提供します。ユーザーは公開 URL 経由で利用できます。
VCS – Git サーバー。ユーザーは公開 URL 経由で利用できます。
コンピューティングサービス – Kubernetes クラスター内で Space Automation ワーカーを実行できるようにするサービス。
パッケージ – ユーザーがコンテナーレジストリ、NuGet フィード、Maven リポジトリなどのさまざまなリポジトリを作成できる Space パッケージリポジトリマネージャー。ユーザーはパブリック URL 経由で利用できます。
ラングサービス – Space ユーザーインターフェースにコードフォーマットサービスを提供する内部コンポーネント。ユーザーは利用できません。
Space 応用サービスは、通常、ログ記録および監視サービスが含まれるオプションのコンポーネントです。これらのサービスは、Space On-Premises インストールには含まれていません。これは、ほとんどの企業が、クラスターレベルでアプリケーションを監視するためにどのサービスを使用する必要があるかについての規約をすでに持っているためです。
Space 外部ストレージコンポーネントは、すべてのアプリケーションコンポーネント間で共有されるデータプールです。コンポーネントは、データの分離と分離を提供する方法で構成できます。各コンポーネントは他のコンポーネントとデータを共有しません。ストレージコンポーネントは、外部リンクを使用してクラスターに追加されます。ストレージコンポーネントはクラスターの一部にすることも、Space の外部でホストすることもできます。
Redis – イベントキューとして使用されます。
PostgreSQL – アプリケーションデータを保存する SQL データベース。
MinIO または別の S3 互換ストレージ - オブジェクトストレージ。
Elasticsearch – 検索データベース。
DNS
前述したように、ユーザークライアントは、パブリック URL 経由で Space ユーザーインターフェース、Space パッケージ、および VCS の 3 つの Space アプリケーションコンポーネントにのみアクセスできます。つまり、Space On-Premises インスタンスには、対応するサービス用のトップレベルドメイン名と 3 つのサブドメインが必要です。URL はクライアントが利用できる必要があります。例: トップレベルドメインが space.local
であると提案する場合:
![オンプレミスの DNS DNS for on-premises](https://resources.jetbrains.com/help/img/space/onpremDns.png)
セキュリティの観点から、多数の TLS 証明書 (サービスごとに 1 つ) を作成するか、すべてのサービスの共有 (ワイルドカード) 証明書を作成できます。
Pod スケジューリング
スケジューリングポリシーは、ワーカーが特定の Space アプリケーションコンポーネントで 1 つの pod のみを実行できることを意味します。例: ワーカーが Space パッケージを含む pod を実行する場合、Kubernetes スケジューラはもう 1 つの Space パッケージ pod をこのワーカーにデプロイしません。ただし、pod を別のコンポーネントとともにデプロイすることはできます。Git サーバーを使用します。
例: 実行時の pod 構成は次のようになります。
![オンプレミス pod スケジューリング On-prem pod scheduling](https://resources.jetbrains.com/help/img/space/onpremPodsScheduling.png)
アプリケーションコンポーネント: Space
![オンプレミス Space Ui Onprem Space Ui](https://resources.jetbrains.com/help/img/space/onpremSpaceUi.png)
Space アプリケーションコンポーネントは、ユーザーインターフェースと Space の主要な機能を提供します。クラスター内では、Space アプリケーションはデフォルトのポート 9084 (調整可能) 上の内部サービスとしてアクセス可能です。
Space アプリケーションコンポーネントは次の構成ファイルを使用します。
cm:space-envs
: ユーザーがプロセスに挿入できるカスタム環境変数を含む ConfigMap。cm:space-conf
: プロセスの特定の構成設定を含む ConfigMap。これはこのアプリケーションに対してローカルです。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
オプション:
水平 Pod オートスケーラーポリシーを構成できます。ポリシーを有効にするには、Kubernetes クラスター管理者が HPA コントローラーを構成する必要があります。
サービスアカウントを設定することが可能です。
アプリケーションコンポーネント: VCS
![VCS アプリケーションコンポーネント VCS application component](https://resources.jetbrains.com/help/img/space/onpremVcs.png)
VCS コンポーネントを使用すると、ユーザーは Space のプロジェクト用に Git リポジトリを作成できます。クラスター内では、コンポーネントはデフォルトのポート 19084 (調整可能) 上の内部サービスとして到達可能です。
VCS コンポーネントは次の構成ファイルを使用します。
cm:vcs-envs
: ユーザーがプロセスに挿入できるカスタム環境変数を含む ConfigMap。cm:vcs-conf
: プロセスの特定の構成設定を含む ConfigMap。これはこのアプリケーションに対してローカルです。cm:logs
: ロギング構成を含む ConfigMap。この ConfigMap は、すべてのアプリケーションコンポーネントに共通です。
設定ファイルに加えて、VCS コンポーネントを設定するにはいくつかのシークレットを使用する必要があります。secrets:vcs
は、環境変数として指定された必要なアプリケーション構成を含む構成ファイルのグループです。各シークレットは、values.yaml
ファイル内の対応するグループを表します。
vcs-database
vcs-eventbus
vcs-main
vcs-s3
オプション:
水平 Pod オートスケーラーポリシーを構成できます。ポリシーを有効にするには、Kubernetes クラスター管理者が HPA コントローラーを構成する必要があります。
サービスアカウントを設定することが可能です。
アプリケーションコンポーネント: コンピューティングサービス
![パッケージコンポーネント Packages component](https://resources.jetbrains.com/help/img/space/onpremComputeservice.png)
Compute-service は、オートメーションジョブを実行するマシンである Space Automation ワーカーを管理します。例: サービスはオンデマンドで (CI/CD ジョブを実行するために) クラスター内にワーカーを作成し、不要になったらワーカーを削除します。デフォルトでは、Compute-service は無効になっています。デフォルトの Space オンプレミスインストールでは、セルフホスト型ワーカー (Space ユーザーがホストするマシン) の使用が暗示されます。
クラスター内では、コンポーネントはデフォルトのポート 8084 (調整可能) で内部サービスとしてアクセスできます。
Compute-service コンポーネントは次の構成ファイルを使用します。
cm:computeservice-envs
: ユーザーがプロセスに挿入できるカスタム環境変数を含む ConfigMap。cm:computeservice-conf
: プロセスの特定の構成設定を含む ConfigMap。これはこのアプリケーションに対してローカルです。cm:logs
: ロギング構成を含む ConfigMap。この ConfigMap は、すべてのアプリケーションコンポーネントに共通です。
Compute-service コンポーネントを構成するには、構成ファイルに加えて、いくつかのシークレットを使用する必要があります。secrets:computeservice
は、環境変数として指定された必要なアプリケーション構成を含む構成ファイルのグループです。
オプション:
水平 Pod オートスケーラーポリシーを構成できます。ポリシーを有効にするには、Kubernetes クラスター管理者が HPA コントローラーを構成する必要があります。
サービスアカウントを設定することが可能です。
アプリケーションコンポーネント: 自動化ジョブ
Automation ジョブは、Compute サービスによって起動される Kubernetes ジョブです。
オプション:
水平ノードオートスケーラーポリシー(英語)の設定が可能です。
アプリケーションコンポーネント: パッケージ
![パッケージコンポーネント Packages component](https://resources.jetbrains.com/help/img/space/onpremPackages.png)
Space Packages は、パッケージリポジトリマネージャーです。クラスター内では、コンポーネントはデフォルトのポート 9390 (調整可能) で内部サービスとしてアクセスできます。
Packages コンポーネントは次の構成ファイルを使用します。
cm:packages-envs
: ユーザーがプロセスに挿入できるカスタム環境変数を含む ConfigMap。cm:packages-conf
: プロセスの特定の構成設定を含む ConfigMap。これはこのアプリケーションに対してローカルです。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
オプション:
水平 Pod オートスケーラーポリシーを構成できます。ポリシーを有効にするには、Kubernetes クラスター管理者が HPA コントローラーを構成する必要があります。
サービスアカウントを設定することが可能です。
アプリケーションコンポーネント: ラングサービス
![Langservice アプリコンポーネント Langservice app component](https://resources.jetbrains.com/help/img/space/onpremLangservice.png)
Lang サービスは、Space ユーザーインターフェースのコード形式を提供する内部コンポーネントです。クラスター内では、コンポーネントはデフォルトのポート 8095 (調整可能) で内部サービス svc:langservice
としてアクセス可能です。
Lang-service コンポーネントは次の構成ファイルを使用します。
cm:langservice-envs
: ユーザーがプロセスに挿入できるカスタム環境変数を含む ConfigMap。cm:langservice-conf
: プロセスの特定の構成設定を含む ConfigMap。これはこのアプリケーションに対してローカルです。cm:logs
: ロギング構成を含む ConfigMap。この ConfigMap は、すべてのアプリケーションコンポーネントに共通です。
オプション:
水平 Pod オートスケーラーポリシーを構成できます。ポリシーを有効にするには、Kubernetes クラスター管理者が HPA コントローラーを構成する必要があります。
サービスアカウントを設定することが可能です。
関連ページ:
![](https://pleiades.io/icons/jetbrains_logo.png)
自動化 (CI/CD)
自動化は、CI/CD を担当する JetBrains Space の一部です。これにより、プロジェクトをビルド、テスト、デプロイできます。基本自動化を始めましょう、概念、ジョブとステップ、デプロイ、実行環境、パラメーターとシークレット、サンプル Android、Dart、Docker、Helm チャート、Java および Kotlin 用の Gradle、Java および Kotlin 用の Maven、.NET と .NET Core、.NET フレームワーク、Node.js、npm、Pytho...
![](https://resources.jetbrains.com/help/img/space/externalWorkerTags.png)
セルフホスト型ワーカー
セルフホスト型ワーカーは、Windows、Linux、macOS 上の独自のマシンで実行できる軽量エージェントです。セルフホスト型ワーカーは Space Automation に接続し、ジョブとプロジェクトのソースコードを取得してジョブを実行し、結果を Space にレポートします。セルフホスト型ワーカーを使用すると、コンテナーでは不可能な CI/CD ワークフローを実行できます。例:Windows 上で完全な .NET フレームワークアプリケーションを構築します。特定のハードウェアを使用する...
![](https://resources.jetbrains.com/help/img/space/K8sWorkersStructure.png)
Kubernetes クラスターに Space をインストールする
このガイドでは、Helm を使用してローカル Kubernetes クラスターに Space On-Premises をインストールする方法を説明します。インストール要件:Kubernetes バージョン 1.21 以降 Helm バージョン 3.6.0 以降クラスターワーカークラスターには少なくとも 5 つのワーカーがあります。OS: Linux、プラットフォーム: x86_64/amd64、推奨される最小リソース: 4 つの CPU コアと 8GB のメモリ、名前空間専用の Kubernetes...