4.7.2.2. 単一ホストストラテジー

single-host ストラテジーでは、すべてのワークスペースが主な CodeReady Workspaces サーバードメインのサブパスにデプロイされます。

これは、すべてのワークスペースコンポーネントのデプロイメントに対応する CodeReady Workspaces サーバーの単一の証明書のみが必要となるため、TLS で保護される CodeReady Workspaces サーバーの場合に便利です。

単一ホストストラテジーには、異なる実装方法が設定された 2 つのサブタイプがあります。最初のサブタイプの名前は native です。このストラテジーは Kubernetes でデフォルトで利用できますが、サーバーの公開に Ingress を使用するため、OpenShift では利用できません。gateway という名前の 2 つ目のサブタイプは OpenShift の両方で機能し、内部で実行されるリバースプロキシーのある特別な Pod を使用して要求をルーティングします。

警告

gateway single-host ストラテジーでは、クラスターのネットワークポリシーを設定して、ワークスペースのサービスが (通常は CodeReady Workspaces プロジェクトの) リバースプロキシー Pod から到達できるように設定する必要があります。通常、これらは異なるプロジェクトに置かれます。

devfile に指定されたエンドポイントを公開する方法を定義するには、CodeReady Workspaces インスタンスの CHE_INFRA_KUBERNETES_SINGLEHOST_WORKSPACE_DEVFILE__ENDPOINT__EXPOSURE 環境変数を定義します。この環境変数は、single-host サーバーストラテジーでのみ有効であり、すべてのユーザーのすべてのワークスペースに適用できます。

4.7.2.2.1. devfile エンドポイント:single-host

CHE_INFRA_KUBERNETES_SINGLEHOST_WORKSPACE_DEVFILE__ENDPOINT__EXPOSURE: 'single-host'

この単一ホスト設定は、サブパスのエンドポイントを公開します(例:https://<che-host>/serverihzmuqqc/go-cli-server-8080 )。これにより、公開されるコンポーネントおよびユーザーアプリケーションが制限されます。サーバーを参照するサーバー側で生成される絶対 URL は機能しません。これは、サーバーが、コンポーネントまたはユーザーアプリケーションから一意の URL パスのプレフィックスを非表示にするパスが書き換えられるリバースプロキシーの背後にあるためです。

たとえば、ユーザーが仮の \https://codeready-<openshift_deployment_name>.<domain_name>/component-prefix-djh3d/app/index.php URL にアクセスする場合に、アプリケーションには要求が https://internal-host/app/index.php に送信されるように表示されます。アプリケーションが UI で生成する URL でホストを使用している場合、内部ホストが外部に表示されるホストとは異なるため、これは機能しません。ただし、アプリケーションが URL に絶対パスを使用している場合 (上記の場合は /app/index.php)、この URL は依然として機能しません。これは、外部ではこの URL はコンポーネント固有のプレフィックスがなく、アプリケーションを参照しないためです。

そのため、UI で相対 URL を使用するアプリケーションのみが、single-host ワークスペース公開ストラテジーで機能します。