This documentation is for a release that is no longer maintained
See documentation for the latest supported version.3.7. ネットワークの設定
3.7.1. ネットワークポリシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、OpenShift クラスター内のすべての Pod は、異なる名前空間にある場合でも相互に通信できます。OpenShift Dev Spaces のコンテキストでは、これにより、あるユーザープロジェクトのワークスペース Pod が別のユーザープロジェクトの別のワークスペース Pod にトラフィックを送信できるようになります。
セキュリティーのために、NetworkPolicy オブジェクトを使用してマルチテナント分離を設定し、すべての着信通信をユーザープロジェクト内の Pod に制限することができます。ただし、OpenShift Dev Spaces プロジェクトの Pod は、ユーザープロジェクトの Pod と通信できる必要があります。
前提条件
- OpenShift クラスターには、マルチテナント分離などのネットワーク制限があります。
手順
allow-from-openshift-devspacesNetworkPolicy を各ユーザープロジェクトに適用します。allow-from-openshift-devspacesNetworkPolicy は、OpenShift Dev Spaces 名前空間からユーザープロジェクト内のすべての Pod への受信トラフィックを許可します。例3.34
allow-from-openshift-devspaces.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.7.2. Dev Spaces ホスト名の設定 リンクのコピーリンクがクリップボードにコピーされました!
この手順では、カスタムホスト名を使用するように OpenShift Dev Space を設定する方法を説明します。
前提条件
-
宛先 OpenShift クラスターへの管理権限を持つアクティブな
ocセッション。CLI の使用方法 を参照。 - 証明書とプライベートキーファイルが生成されます。
秘密鍵と証明書のペアを生成するには、他の OpenShift Dev Spaces ホストと同じ認証局 (CA) を使用する必要があります。
DNS プロバイダーに対し、カスタムホスト名をクラスター Ingress を参照するよう要求します。
手順
OpenShift Dev Spaces のプロジェクトを作成します。
oc create project openshift-devspaces
$ oc create project openshift-devspacesCopy to Clipboard Copied! Toggle word wrap Toggle overflow TLS Secret を作成します。
oc create secret TLS <tls_secret_name> \ --key <key_file> \ --cert <cert_file> \ -n openshift-devspaces
$ oc create secret TLS <tls_secret_name> \1 --key <key_file> \2 --cert <cert_file> \3 -n openshift-devspacesCopy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットに必要なラベルを追加します。
oc label secret <tls_secret_name> \ app.kubernetes.io/part-of=che.eclipse.org -n openshift-devspaces
$ oc label secret <tls_secret_name> \1 app.kubernetes.io/part-of=che.eclipse.org -n openshift-devspacesCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- TLS Secret 名
CheClusterカスタムリソースを設定します。「CLI を使用して CheCluster カスタムリソースの設定」を参照してください。spec: networking: hostname: <hostname> tlsSecretName: <secret>spec: networking: hostname: <hostname>1 tlsSecretName: <secret>2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - OpenShift Dev Spaces がすでにデプロイされている場合は、すべての OpenShift Dev Spaces コンポーネントのロールアウトが完了するまで待ちます。
3.7.3. 信頼されていない TLS 証明書を Dev Spaces にインポートする リンクのコピーリンクがクリップボードにコピーされました!
外部サービスとの OpenShift Dev Spaces コンポーネントの通信は、TLS で暗号化されます。信頼できる認証局 (CA) によって署名された TLS 証明書が必要です。したがって、以下のような外部サービスで使用されていて、信頼されていない CA チェーンをすべて OpenShift Dev Spaces にインポートする必要があります。
- プロキシー
- ID プロバイダー (OIDC)
- ソースコードリポジトリープロバイダー (Git)
OpenShift Dev Spaces は、OpenShift Dev Spaces プロジェクトのラベル付き ConfigMap を TLS 証明書のソースとして使用します。ConfigMap には、それぞれ任意の数の証明書と、任意の数の鍵を指定できます。
OpenShift クラスターにクラスター全体の信頼できる CA 証明書が クラスター全体のプロキシー設定 を通じて追加されている場合、OpenShift DevSpaces Operator はそれらを検出し、config.openshift.io/inject-trusted-cabundle="true" ラベルを ConfigMap につけて自動的に挿入します。このアノテーションに基づいて、OpenShift は Config Map の ca-bundle.crt キー内にクラスター全体で信頼される CA 証明書を自動的に挿入します。
前提条件
手順
インポートするすべての CA チェーン PEM ファイルを
custom-ca-certificates.pemファイルに連結し、Java トラストストアと互換性のない戻り文字を削除します。cat ca-cert-for-{prod-id-short}-*.pem | tr -d '\r' > custom-ca-certificates.pem$ cat ca-cert-for-{prod-id-short}-*.pem | tr -d '\r' > custom-ca-certificates.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 必要な TLS 証明書を使用して
custom-ca-certificatesConfig Map を作成します。oc create configmap custom-ca-certificates \ --from-file=custom-ca-certificates.pem \ --namespace=openshift-devspaces$ oc create configmap custom-ca-certificates \ --from-file=custom-ca-certificates.pem \ --namespace=openshift-devspacesCopy to Clipboard Copied! Toggle word wrap Toggle overflow custom-ca-certificatesConfig Map にラベルを付けます。oc label configmap custom-ca-certificates \ app.kubernetes.io/component=ca-bundle \ app.kubernetes.io/part-of=che.eclipse.org \ --namespace=openshift-devspaces$ oc label configmap custom-ca-certificates \ app.kubernetes.io/component=ca-bundle \ app.kubernetes.io/part-of=che.eclipse.org \ --namespace=openshift-devspacesCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 以前にデプロイされていない場合は、OpenShift Dev Spaces をデプロイします。それ以外の場合は、OpenShift Dev Spaces コンポーネントのロールアウトが完了するまで待ちます。
- 変更を有効にするには、実行中のワークスペースを再起動します。
検証手順
Config Map にカスタム CA 証明書が含まれていることを確認します。このコマンドは、カスタム CA 証明書を PEM 形式で返します。
oc get configmap \ --namespace=openshift-devspaces \ --output='jsonpath={.items[0:].data.custom-ca-certificates\.pem}' \ --selector=app.kubernetes.io/component=ca-bundle,app.kubernetes.io/part-of=che.eclipse.org$ oc get configmap \ --namespace=openshift-devspaces \ --output='jsonpath={.items[0:].data.custom-ca-certificates\.pem}' \ --selector=app.kubernetes.io/component=ca-bundle,app.kubernetes.io/part-of=che.eclipse.orgCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Dev Spaces Pod に、
ca-certs-mergedConfig Mapをマウントするボリュームが含まれていることを確認します。oc get pod \ --selector=app.kubernetes.io/component=devspaces \ --output='jsonpath={.items[0].spec.volumes[0:].configMap.name}' \ --namespace=openshift-devspaces \ | grep ca-certs-merged$ oc get pod \ --selector=app.kubernetes.io/component=devspaces \ --output='jsonpath={.items[0].spec.volumes[0:].configMap.name}' \ --namespace=openshift-devspaces \ | grep ca-certs-mergedCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Dev Spaces サーバーコンテナーにカスタム CA 証明書があることを確認します。このコマンドは、カスタム CA 証明書を PEM 形式で返します。
oc exec -t deploy/devspaces \ --namespace=openshift-devspaces \ -- cat /public-certs/custom-ca-certificates.pem$ oc exec -t deploy/devspaces \ --namespace=openshift-devspaces \ -- cat /public-certs/custom-ca-certificates.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Dev Spaces サーバーログで、インポートされた証明書の数が null でないことを確認します。
oc logs deploy/devspaces --namespace=openshift-devspaces \ | grep custom-ca-certificates.pem$ oc logs deploy/devspaces --namespace=openshift-devspaces \ | grep custom-ca-certificates.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 証明書の SHA256 フィンガープリントを一覧表示します。
for certificate in ca-cert*.pem ; do openssl x509 -in $certificate -digest -sha256 -fingerprint -noout | cut -d= -f2; done
$ for certificate in ca-cert*.pem ; do openssl x509 -in $certificate -digest -sha256 -fingerprint -noout | cut -d= -f2; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Dev Spaces サーバーの Java トラストストアに同じフィンガープリントを持つ証明書が含まれていることを確認します。
oc exec -t deploy/devspaces --namespace=openshift-devspaces -- \ keytool -list -keystore /home/user/cacerts \ | grep --after-context=1 custom-ca-certificates.pem$ oc exec -t deploy/devspaces --namespace=openshift-devspaces -- \ keytool -list -keystore /home/user/cacerts \ | grep --after-context=1 custom-ca-certificates.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ワークスペースを開始し、これが作成されたプロジェクト名 <workspace_namespace> を取得して、ワークスペースが開始されるのを待ちます。
che-trusted-ca-certsConfig Mapにカスタム CA 証明書が含まれていることを確認します。このコマンドは、カスタム CA 証明書を PEM 形式で返します。oc get configmap che-trusted-ca-certs \ --namespace=<workspace_namespace> \ --output='jsonpath={.data.custom-ca-certificates\.custom-ca-certificates\.pem}'$ oc get configmap che-trusted-ca-certs \ --namespace=<workspace_namespace> \ --output='jsonpath={.data.custom-ca-certificates\.custom-ca-certificates\.pem}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow ワークスペース Pod が
che-trusted-ca-certsConfig Mapをマウントすることを確認します。oc get pod \ --namespace=<workspace_namespace> \ --selector='controller.devfile.io/devworkspace_name=<workspace_name>' \ --output='jsonpath={.items[0:].spec.volumes[0:].configMap.name}' \ | grep che-trusted-ca-certs$ oc get pod \ --namespace=<workspace_namespace> \ --selector='controller.devfile.io/devworkspace_name=<workspace_name>' \ --output='jsonpath={.items[0:].spec.volumes[0:].configMap.name}' \ | grep che-trusted-ca-certsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Universal-developer-imageコンテナー (またはワークスペース devfile で定義されたコンテナー) がche-trusted-ca-certsボリュームをマウントしていることを確認します。oc get pod \ --namespace=<workspace_namespace> \ --selector='controller.devfile.io/devworkspace_name=<workspace_name>' \ --output='jsonpath={.items[0:].spec.containers[0:]}' \ | jq 'select (.volumeMounts[].name == "che-trusted-ca-certs") | .name'$ oc get pod \ --namespace=<workspace_namespace> \ --selector='controller.devfile.io/devworkspace_name=<workspace_name>' \ --output='jsonpath={.items[0:].spec.containers[0:]}' \ | jq 'select (.volumeMounts[].name == "che-trusted-ca-certs") | .name'Copy to Clipboard Copied! Toggle word wrap Toggle overflow ワークスペース Pod 名 <workspace_pod_name> を取得します。
oc get pod \ --namespace=<workspace_namespace> \ --selector='controller.devfile.io/devworkspace_name=<workspace_name>' \ --output='jsonpath={.items[0:].metadata.name}' \$ oc get pod \ --namespace=<workspace_namespace> \ --selector='controller.devfile.io/devworkspace_name=<workspace_name>' \ --output='jsonpath={.items[0:].metadata.name}' \Copy to Clipboard Copied! Toggle word wrap Toggle overflow ワークスペースコンテナーにカスタム CA 証明書があることを確認します。このコマンドは、カスタム CA 証明書を PEM 形式で返します。
oc exec <workspace_pod_name> \ --namespace=<workspace_namespace> \ -- cat /public-certs/custom-ca-certificates.custom-ca-certificates.pem$ oc exec <workspace_pod_name> \ --namespace=<workspace_namespace> \ -- cat /public-certs/custom-ca-certificates.custom-ca-certificates.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
3.7.4. ラベルとアノテーションの追加 リンクのコピーリンクがクリップボードにコピーされました!
3.7.4.1. ルーターのシャード化と連携するように OpenShift ルートを設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Route が ルーターのシャード化 と連携するようにラベル、アノテーション、およびドメインを設定できます。
前提条件
-
OpenShift クラスターへの管理権限を持つアクティブな
ocセッション。Getting started with the OpenShift CLI を参照してください。 -
dsc。「dsc 管理ツールのインストール」 を参照してください。
手順
CheClusterカスタムリソースを設定します。「CLI を使用して CheCluster カスタムリソースの設定」を参照してください。spec: networking: labels: <labels> domain: <domain> annotations: <annotations>spec: networking: labels: <labels>1 domain: <domain>2 annotations: <annotations>3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow