4.14. コンポーネント間の通信での外部 DNS 名と内部 DNS 名間の切り替え

デフォルトでは、新規の CodeReady Workspaces デプロイメントは、CodeReady Workspaces サーバー、RH-SSO、レジストリー間の通信に OpenShift サービス DNS 名を使用します。これは以下に役立ちます。

  • プロキシー、証明書、およびファイアウォールの問題の回避
  • トラフィックの高速化

このタイプの通信は、OpenShift Route クラスターのホスト名を使用するコンポーネント間の通信の外部の方法に代わるものです。以下の状況では、OpenShift 内部 DNS 名の使用はサポートされません。コンポーネント間の通信で内部クラスターのホスト名の使用を無効にすると、外部 OpenShift Route を使用した通信が有効になります。

OpenShift における内部のコンポーネント間通信の制限

  • CodeReady Workspaces コンポーネントは、マルチクラスター OpenShift 環境全体にデプロイされます。
  • OpenShift NetworkPolicies は namespace 間の通信を制限します。

以下のセクションでは、OpenShift Route の外部のコンポーネント間の通信を有効/無効にする方法を説明します。

前提条件

  • oc ツールが利用できる。
  • OpenShift で実行される CodeReady Workspaces のインスタンス。

手順

コンポーネント間の通信方法を外部と内部で切り替えるには、カスタムリソース (CR) に対する更新が必要です。

  1. コンポーネント間の通信で外部 OpenShift ルートを使用するには、以下を実行します。

    $ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \
    '[{"op": "replace", "path": "/spec/server/useInternalClusterSVCNames", "value": false}]'
  2. コンポーネント間の通信で内部 OpenShift DNS 名を使用するには、以下を実行します。

    $ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \
    '[{"op": "replace", "path": "/spec/server/useInternalClusterSVCNames", "value": true}]'