2.2. ワークスペースの要件
本セクションでは、ワークスペースに必要なリソースを計算する方法を説明します。これは、このワークスペースの各コンポーネントに必要なリソースの合計です。
以下の例は、適切な計算の必要性について示しています。
- アクティブな 10 のプラグインがあるワークスペースには、これより少ないプラグインを持つ同じワークスペースよりも多くのリソースが必要になります。
- 標準の Java ワークスペースでは、ビルド、テスト、およびアプリケーションのデバッグにより多くのリソースが必要になるため、標準の Node.js ワークスペースよりも多くのリソースが必要になります。
手順
-
https://access.redhat.com/documentation/ja-jp/red_hat_codeready_workspaces/2.15/html-single/end-user_guide/index#authoring-devfiles-version-2.adoc の
componentsセクションで明示的に指定されたワークスペースコンポーネントを特定します。 暗黙的なワークスペースコンポーネントを特定します。
-
CodeReady Workspaces はデフォルトの
cheEditor:che-theiaと、コマンドの実行を許可するchePlugin(che-machine-exec-plugin) を暗黙的に読み込みます。CodeReady Workspaces がマルチユーザーモードで実行されている場合は、cheEditorコンポーネントを読み込みます。 - JWT プロキシーコンポーネントは、ワークスペースコンポーネントの外部通信の認証および認可を行います。
-
CodeReady Workspaces はデフォルトの
各コンポーネントの要件を計算します。
デフォルト値:
以下の表は、すべてのワークスペースコンポーネントのデフォルト要件と、対応する CodeReady Workspaces サーバープロパティーを示しています。CodeReady Workspaces サーバープロパティーを使用して、デフォルトのクラスター全体を変更します。
Expand 表2.2 タイプ別のワークスペースコンポーネントのデフォルト要件 コンポーネントのタイプ CodeReady Workspaces サーバープロパティー デフォルトのメモリー制限 デフォルトのメモリー要求 chePluginche.workspace.sidecar.default_memory_limit_mb128 MiB
64 MiB
cheEditorche.workspace.sidecar.default_memory_limit_mb128 MiB
64 MiB
kubernetes、openshift、dockerimageche.workspace.default_memory_limit_mb,che.workspace.default_memory_request_mb1 Gi
200 MiB
JWT プロキシーche.server.secure_exposer.jwtproxy.memory_limit、che.server.secure_exposer.jwtproxy.memory_request128 MiB
15 MiB
chePluginsおよびcheEditorsコンポーネントのカスタム要件:カスタムメモリー制限および要求:
meta.yamlファイルのcontainersセクションのmemoryLimitおよびmemoryRequest属性を定義して、chePluginsまたはcheEditorsコンポーネントのメモリー制限を設定します。CodeReady Workspaces は、明示的に指定されていない場合に、メモリー制限に一致するようにメモリー要求を自動的に設定します。例2.1
chePluginche-incubator/typescript/latestmeta.yaml仕様セクション:Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、コンテナーには以下のメモリー制限および要求が設定されます。
Expand メモリー制限
512 MiB
メモリー要求
256 MiB
注記IBM Power (ppc64le) の場合は、一部のプラグインのメモリー制限が最大 1.5G まで増え、Pod が十分な RAM を実行できるようになりました。たとえば、IBM Power (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
chePluginche-incubator/typescript/latestmeta.yaml仕様セクション:Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、コンテナーに以下の CPU 制限および要求が設定されます。
Expand CPU 制限
2 コア
CPU 要求
0.5 コア
CPU 制限および要求をグローバルに設定するには、以下の専用の環境変数を使用します。
|
|
|
|
|
|
OpenShift プロジェクトの LimitRange オブジェクトは、クラスター管理者によって設定される CPU 制限および要求のデフォルト値を指定できることに注意してください。リソースのオーバーランによる開始エラーを防ぐために、アプリケーションやワークスペースレベルでの制限がこれらの設定に準拠している必要があります。
dockerimageコンポーネントのカスタム要件:devfile の
memoryLimit属性とmemoryRequest属性を定義して、dockerimageコンテナーのメモリー制限を設定します。CodeReady Workspaces は、明示的に指定されていない場合に、メモリー制限に一致するようにメモリー要求を自動的に設定します。- alias: maven type: dockerimage image: eclipse/maven-jdk8:latest memoryLimit: 1536M- alias: maven type: dockerimage image: eclipse/maven-jdk8:latest memoryLimit: 1536MCopy to Clipboard Copied! Toggle word wrap Toggle overflow kubernetesまたはopenshiftコンポーネントのカスタム要件:参照されるマニフェストは、メモリー要件および制限を定義できます。
- 以前に計算された要件をすべて追加します。