2.2. ワークスペースの要件
本セクションでは、ワークスペースに必要なリソースを計算する方法を説明します。これは、このワークスペースの各コンポーネントに必要なリソースの合計です。
以下の例は、適切な計算の必要性について示しています。
- アクティブな 10 のプラグインがあるワークスペースには、これより少ないプラグインを持つ同じワークスペースよりも多くのリソースが必要になります。
- 標準の Java ワークスペースでは、ビルド、テスト、およびアプリケーションのデバッグにより多くのリソースが必要になるため、標準の Node.js ワークスペースよりも多くのリソースが必要になります。
手順
-
Authoring devfiles version 2の
components
セクションで明示的に指定されるワークスペースコンポーネントを特定します。 暗黙的なワークスペースコンポーネントを特定します。
-
CodeReady Workspaces はデフォルトの
cheEditor
:che-theia
と、コマンドの実行を許可するchePlugin
(che-machine-exec-plugin
)を暗黙的に読み込みます。CodeReady Workspaces がマルチユーザーモードで実行されている場合は、cheEditor
コンポーネントを読み込みます。 -
CodeReady Workspaces がマルチユーザーモードで実行されている場合は、
JWT Proxy
コンポーネントを読み込みます。JWT プロキシーは、ワークスペースコンポーネントの外部通信の認証および認可を行います。
-
CodeReady Workspaces はデフォルトの
各コンポーネントの要件を計算します。
デフォルト値:
以下の表は、すべてのワークスペースコンポーネントのデフォルト要件を示しています。また、デフォルトのクラスター全体を変更できるように対応する CodeReady Workspaces サーバープのロパティーも表示します。
表2.2 タイプ別のワークスペースコンポーネントのデフォルト要件
コンポーネントのタイプ CodeReady Workspaces サーバープロパティー デフォルトのメモリー制限 デフォルトのメモリー要求 chePlugin
che.workspace.sidecar.default_memory_limit_mb
128 MiB
64 MiB
cheEditor
che.workspace.sidecar.default_memory_limit_mb
128 MiB
64 MiB
kubernetes
、openshift
、dockerimage
che.workspace.default_memory_limit_mb
,che.workspace.default_memory_request_mb
1 Gi
200 MiB
JWT プロキシー
che.server.secure_exposer.jwtproxy.memory_limit
、che.server.secure_exposer.jwtproxy.memory_request
128 MiB
15 MiB
chePlugins
およびcheEditors
コンポーネントのカスタム要件:カスタムメモリー制限および要求:
存在する場合、
meta.yaml
ファイルのcontainers
セクションのmemoryLimit
およびmemoryRequest
属性は、chePlugins
またはcheEditors
コンポーネントのメモリー制限を定義します。CodeReady Workspaces は、明示的に指定されていない場合に、メモリー制限に一致するようにメモリー要求を自動的に設定します。例2.1
chePlugin
che-incubator/typescript/latest
meta.yaml
仕様セクション:spec: containers: - image: docker.io/eclipse/che-remote-plugin-node:next name: vscode-typescript memoryLimit: 512Mi memoryRequest: 256Mi
これにより、コンテナーには以下のメモリー制限および要求が設定されます。
Memory limit
512 MiB
メモリー要求
256 MiB
注記IBM Power Systems (ppc64le) の場合は、一部のプラグインのメモリー制限が最大 1.5G まで増え、Pod が十分な RAM を実行できるようになりました。たとえば、IBM Power Systems (ppc64le) では、Theia エディター Pod には 2G が必要で、OpenShift コネクター Pod には 2.5G が必要です。AMD64 および Intel 64(x86_64)、 および IBM Z(s390x)の場合、メモリー要件は 512M と 1500M とそれぞれ低くなっています。ただし、一部の devfile は、AMD64 および Intel 64 (x86_64)、ならびに IBM Z (s390x) に有効である低い制限を設定するように設定されます。これを回避するため、デフォルトの memoryLimit を 1 - 1.5 GB 以上を増やすために、devfile を編集します。
注記chePlugin
のmeta.yaml
ファイルの検索方法コミュニティープラグインは、
v3/plugins/${organization}/${name}/${version}/
フォルダーの CodeReady Workspaces plug-ins registry repository で利用できます。コミュニティー以外またはカスタマイズされたプラグインの場合、
meta.yaml
ファイルは${pluginRegistryEndpoint}/v3/plugins/${organization}/${name}/${version}/meta.yaml
のローカルの OpenShift クラスターで利用できます。カスタム CPU の制限および要求:
CodeReady Workspaces は、デフォルトで CPU の制限および要求を設定しません。ただし、
meta.yaml
ファイルまたは devfile でchePlugin
およびcheEditor
タイプの CPU 制限を、メモリー制限と同じ様に設定できます。例2.2
chePlugin
che-incubator/typescript/latest
meta.yaml
仕様セクション:spec: containers: - image: docker.io/eclipse/che-remote-plugin-node:next name: vscode-typescript cpuLimit: 2000m cpuRequest: 500m
これにより、コンテナーに以下の CPU 制限および要求が設定されます。
CPU 制限
2 コア
CPU 要求
0.5 コア
CPU 制限および要求をグローバルに設定するには、以下の専用の環境変数を使用します。
|
|
|
|
CodeReady Workspaces サーバーコンポーネントの詳細な設定オプションを参照してください。
OpenShift プロジェクトの LimitRange
オブジェクトは、クラスター管理者によって設定される CPU 制限および要求のデフォルト値を指定できることに注意してください。リソースのオーバーランによる開始エラーを防ぐために、アプリケーションやワークスペースレベルでの制限がこれらの設定に準拠している必要があります。
dockerimage
コンポーネントのカスタム要件:存在する場合、devfileの
memoryLimit
属性とmemoryRequest
属性は、dockerimage
コンテナのメモリ制限を定義します。CodeReady Workspaces は、明示的に指定されていない場合に、メモリー制限に一致するようにメモリー要求を自動的に設定します。- alias: maven type: dockerimage image: eclipse/maven-jdk8:latest memoryLimit: 1536M
kubernetes
またはopenshift
コンポーネントのカスタム要件:参照されるマニフェストは、メモリー要件および制限を定義できます。
- 以前に計算された要件をすべて追加します。