2.2. ワークスペースの要件
本セクションでは、ワークスペースに必要なリソースを計算する方法を説明します。これは、このワークスペースの各コンポーネントに必要なリソースの合計です。
以下の例は、適切な計算の必要性について示しています。
- アクティブな 10 のプラグインがあるワークスペースには、これより少ないプラグインを持つ同じワークスペースよりも多くのリソースが必要になります。
- 標準の Java ワークスペースでは、ビルド、テスト、およびアプリケーションのデバッグにより多くのリソースが必要になるため、標準の Node.js ワークスペースよりも多くのリソースが必要になります。
手順
-
https://access.redhat.com/documentation/en-us/red_hat_codeready_workspaces/2.4/html-single/end-user_guide/index#making-a-workspace-portable-using-a-devfile_crw の
componentsセクションに明示的に指定されるワークスペースコンポーネントを特定し ます。 暗黙的なワークスペースコンポーネントを特定します。
-
CodeReady Workspaces は暗黙的にデフォルトの
cheEditor(che-theia) と、コマンドの実行を許可するchePlugin(che-machine-exec-plugin) を読み込みます。デフォルトのエディターを変更するには、devfile にcheEditorコンポーネントセクションを追加します。 -
CodeReady Workspaces がマルチユーザーモードで実行されている場合は、
JWT Proxyコンポーネントを読み込みます。JWT プロキシーは、ワークスペースコンポーネントの外部通信の認証および認可を行います。
-
CodeReady Workspaces は暗黙的にデフォルトの
各コンポーネントの要件を計算します。
デフォルト値:
以下の表は、すべてのワークスペースコンポーネントのデフォルト要件を示しています。また、デフォルトのクラスター全体を変更できるように対応する CodeReady Workspaces サーバープのロパティーも表示します。
Expand 表2.2 タイプ別のワークスペースコンポーネントのデフォルト要件 コンポーネントのタイプ CodeReady Workspaces サーバープロパティー デフォルトのメモリー制限 デフォルトのメモリー要求 chePluginche.workspace.sidecar.default_memory_limit_mb128 MiB
128 MiB
cheEditorche.workspace.sidecar.default_memory_limit_mb128 MiB
128 MiB
kubernetes、openshift、dockerimageche.workspace.default_memory_limit_mb、che.workspace.default_memory_request_mb1 Gi
512 MiB
JWT Proxyche.server.secure_exposer.jwtproxy.memory_limit128 MiB
128 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
ヒントchePluginのmeta.yamlファイルの検索方法です。コミュニティープラグインは、
v3/plugins/${organization}/${name}/${version}/フォルダーの che-plugin-registry GitHub リポジトリーで利用できます。コミュニティー以外またはカスタマイズされたプラグインの場合、
meta.yamlファイルは${pluginRegistryEndpoint}/v3/plugins/${organization}/${name}/${version}/meta.yamlのローカルの OpenShift クラスターで利用できます。たとえば、ローカルの Minikube クラスターでは、
che-incubator/typescript/latest meta.yamlの URL はhttp://plugin-registry-che.192.168.64.78.nip.io/v3/plugins/che-incubator/typescript/latest/meta.yamlになります。カスタム 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 制限および要求をグローバルに設定するには、以下の専用の環境変数を使用します。
|
|
|
|
|
|
https://access.redhat.com/documentation/en-us/red_hat_codeready_workspaces/2.4/html-single/installation_guide/index#advanced-configuration-options-for-the-codeready-workspaces-server-component_crw も参照し て ください。
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コンポーネントのカスタム要件:参照されるマニフェストは、メモリー要件および制限を定義できます。
- 以前に計算された要件をすべて追加します。