This documentation is for a release that is no longer maintained
See documentation for the latest supported version.4.8. 네트워킹 구성
4.8.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로 들어오는 트래픽을 허용합니다.OPTIONAL: 네트워크 정책으로 다중 테넌트 격리 구성을 적용한 경우
allow-from-openshift-apiserver및allow-from-workspaces-namespacesNetworkPolicies를openshift-devspaces에도 적용해야 합니다.allow-from-openshift-apiserverNetworkPolicy를 사용하면openshift-apiserver네임스페이스에서devworkspace-webhook-server로 들어오는 트래픽을 사용할 수 있습니다.allow-from-workspaces-namespacesNetworkPolicy는 각 사용자 프로젝트에서che-gatewayPod로 들어오는 트래픽을 허용합니다.예 4.44.
allow-from-openshift-apiserver.yaml- 4.2절. “프로젝트 구성”
- 네트워크 격리
- 네트워크 정책으로 다중 테넌트 격리 구성
4.8.2. Dev Spaces 호스트 이름 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 사용자 지정 호스트 이름을 사용하도록 OpenShift Dev Space를 구성하는 방법을 설명합니다.
사전 요구 사항
-
대상 OpenShift 클러스터에 대한 관리 권한이 있는 활성
oc세션. CLI 시작하기를 참조하십시오. - 인증서 및 개인 키 파일이 생성됩니다.
개인 키 및 인증서 쌍을 생성하려면 다른 OpenShift Dev Spaces 호스트에 대해 동일한 CA(인증 기관)를 사용해야 합니다.
DNS 공급자에게 클러스터 인그레스에 대한 사용자 지정 호스트 이름을 가리키도록 요청합니다.
프로세스
OpenShift Dev Spaces용 프로젝트를 사전 생성합니다.
oc create project openshift-devspaces
$ oc create project openshift-devspacesCopy to Clipboard Copied! Toggle word wrap Toggle overflow TLS 시크릿을 생성합니다.
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 시크릿 이름
CheCluster사용자 정의 리소스를 구성합니다. 4.1.2절. “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 구성 요소의 롤아웃이 완료될 때까지 기다립니다.
4.8.3. 신뢰할 수 없는 TLS 인증서 가져오기를 Dev Spaces 링크 복사링크가 클립보드에 복사되었습니다!
외부 서비스와의 OpenShift Dev Spaces 구성 요소 통신은 TLS로 암호화됩니다. 신뢰할 수 있는 CA(인증 기관)에서 서명한 TLS 인증서가 필요합니다. 따라서 다음과 같은 외부 서비스에서 사용하는 신뢰할 수 없는 모든 CA 체인으로 OpenShift Dev Space로 가져와야 합니다.
- 프록시
- ID 공급자(OIDC)
- 소스 코드 리포지토리 공급자(Git)
OpenShift Dev Spaces는 OpenShift Dev Spaces 프로젝트에서 레이블이 지정된 ConfigMap을 TLS 인증서의 소스로 사용합니다. ConfigMaps에는 각각 임의의 양의 인증서가 있는 임의의 양의 키가 있을 수 있습니다. Operator는 모든 ConfigMap을 ca-certs-merged 라는 이름으로 병합하여 OpenShift Dev Spaces 서버, 대시보드 및 작업 공간 Pod에 볼륨으로 마운트합니다. 기본적으로 Operator는 /public-certs 및 /etc/pki/ca-trust/extracted/pem 의 사용자 작업 공간에 ca-certs-merged ConfigMap을 마운트합니다. /etc/pki/ca-trust/extracted/pem 디렉터리에는 시스템이 Red Hat에 신뢰할 수 있는 인증 기관을 위해 추출된 CA 인증서를 저장합니다(예: CentOS, Fedora). CLI 툴에서는 사용자의 작업 공간이 가동되어 실행될 때 시스템에서 신뢰하는 위치에서 인증서를 자동으로 사용합니다.
OpenShift 클러스터에 클러스터 전체 프록시 구성을 통해 추가된 클러스터 전체의 신뢰할 수 있는 CA 인증서가 포함된 경우 OpenShift Dev Spaces Operator는 해당 인증서를 탐지하고 config.openshift.io/inject-trusted-cabundle="true" 라벨을 사용하여 ConfigMap에 자동으로 삽입합니다. 이 주석을 기반으로 OpenShift는 ConfigMap의 ca-bundle.crt 키에 클러스터 전체의 신뢰할 수 있는 CA 인증서를 자동으로 삽입합니다.
사전 요구 사항
프로세스
모든 CA 체인 PEM 파일을
custom-ca-certificates.pem파일에 연결하고 Java 신뢰 저장소와 호환되지 않는 반환 문자를 제거합니다.cat ca-cert-for-devspaces-*.pem | tr -d '\r' > custom-ca-certificates.pem
$ cat ca-cert-for-devspaces-*.pem | tr -d '\r' > custom-ca-certificates.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 TLS 인증서를 사용하여
custom-ca-certificatesConfigMap을 생성합니다.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-certificatesConfigMap에 레이블을 지정합니다.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 구성 요소 롤아웃이 완료될 때까지 기다립니다.
- 변경 사항을 적용하려면 실행 중인 작업 공간을 다시 시작합니다.
검증 단계
ConfigMap에 사용자 정의 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 서버 로그에서 가져온 인증서 수가 null이 아닌지 확인합니다.
oc logs deploy/devspaces --namespace=openshift-devspaces \ | grep tls-ca-bundle.pem$ oc logs deploy/devspaces --namespace=openshift-devspaces \ | grep tls-ca-bundle.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 작업 공간을 시작하고, 생성된 프로젝트 이름(< workspace_namespace >)을 가져오고, 작업 공간이 시작될 때까지 기다립니다.
ca-certs-mergedConfigMap에 사용자 정의 CA 인증서가 포함되어 있는지 확인합니다. 이 명령은 OpenShift Dev Spaces CA 번들 인증서를 PEM 형식으로 반환합니다.oc get configmap che-trusted-ca-certs \ --namespace=<workspace_namespace> \ --output='jsonpath={.data.tls-ca-bundle\.pem}'$ oc get configmap che-trusted-ca-certs \ --namespace=<workspace_namespace> \ --output='jsonpath={.data.tls-ca-bundle\.pem}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 작업 공간 Pod가
ca-certs-mergedConfigMap을 마운트하는지 확인합니다.oc get pod \ --namespace=<workspace_namespace> \ --selector='controller.devfile.io/devworkspace_name=<workspace_name>' \ --output='jsonpath={.items[0:].spec.volumes[0:].configMap.name}' \ | grep ca-certs-merged$ oc get pod \ --namespace=<workspace_namespace> \ --selector='controller.devfile.io/devworkspace_name=<workspace_name>' \ --output='jsonpath={.items[0:].spec.volumes[0:].configMap.name}' \ | grep ca-certs-mergedCopy 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 인증서가 있는지 확인합니다. 이 명령은 OpenShift Dev Spaces CA 번들 인증서를 PEM 형식으로 반환합니다.
oc exec <workspace_pod_name> \ --namespace=<workspace_namespace> \ -- cat /public-certs/tls-ca-bundle.pem$ oc exec <workspace_pod_name> \ --namespace=<workspace_namespace> \ -- cat /public-certs/tls-ca-bundle.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow
추가 리소스
4.8.4. 레이블 및 주석 추가 링크 복사링크가 클립보드에 복사되었습니다!
4.8.4.1. 라우터 공유에서 작동하도록 OpenShift 경로 구성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift 경로의 레이블, 주석 및 도메인이 라우터 분할에서 작동하도록 구성할 수 있습니다.
사전 요구 사항
-
OpenShift 클러스터에 대한 관리 권한이 있는 활성
oc세션. OpenShift CLI 시작하기를 참조하십시오. -
DSC. 2.2절. “dsc 관리 툴 설치” 을 참조하십시오.
프로세스
CheCluster사용자 정의 리소스를 구성합니다. 4.1.2절. “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