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) に対する更新が必要です。
コンポーネント間の通信で外部 OpenShift ルートを使用するには、以下を実行します。
$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/useInternalClusterSVCNames", "value": false}]'
コンポーネント間の通信で内部 OpenShift DNS 名を使用するには、以下を実行します。
$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/useInternalClusterSVCNames", "value": true}]'