This documentation is for a release that is no longer maintained
See documentation for the latest supported version.사용자 가이드
Red Hat OpenShift Dev Spaces 3.18 사용
초록
1장. Dev Spaces 시작하기 링크 복사링크가 클립보드에 복사되었습니다!
조직에서 이미 OpenShift Dev Spaces 인스턴스를 실행 중인 경우 새 작업 공간을 시작하고, 작업 영역을 관리하고, 작업 영역에서 Git 서버로 인증하는 방법을 학습하여 새 사용자로 시작할 수 있습니다.
1.1. Git 리포지토리 URL에서 작업 공간 시작 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dev Spaces를 사용하면 브라우저에서 URL을 사용하여 Git 리포지토리 복제본이 포함된 새 작업 공간을 시작할 수 있습니다. 이렇게 하면 GitHub, GitLab, Bitbucket 또는 Microsoft Azure DevOps 서버 인스턴스에서 호스팅되는 Git 리포지토리를 복제할 수 있습니다.
OpenShift Dev Spaces 대시보드의 Create Workspace 페이지에서 Git Repository URL 필드를 사용하여 Git 리포지토리의 URL을 입력하여 새 작업 영역을 시작할 수도 있습니다.
- SSH URL을 사용하여 새 작업 공간을 시작하는 경우 SSH 키를 전파해야 합니다. 자세한 내용은 Git 작업에 SSH 키를 사용하도록 DevWorkspaces 구성 을 참조하십시오.
-
SSH URL이 개인 리포지토리를 가리키는 경우
devfile.yaml콘텐츠를 가져올 수 있도록 액세스 토큰을 적용해야 합니다. SCM 인증 페이지를 수락하거나 개인 액세스 토큰 절차에 따라 이 작업을 수행할 수 있습니다.
개인 리포지토리에 액세스하도록 개인 액세스 토큰을 구성합니다. 6.1.2절. “Git-provider 액세스 토큰 사용”을 참조하십시오.
사전 요구 사항
- 조직에는 실행 중인 OpenShift Dev Spaces 인스턴스가 있습니다.
-
조직의 OpenShift Dev Spaces 인스턴스의 FQDN URL을 알고 있습니다.
https:// <openshift_dev_spaces_fqdn>. - 선택 사항: Git 서버 구성에 대한 인증이 있어야 합니다.
Git 리포지토리 유지 관리자는
devfile.yaml또는.devfile.yaml파일을 Git 리포지토리의 루트 디렉터리에 유지합니다. (다른 파일 이름 및 파일 경로는 1.1.1절. “새 작업 공간을 시작하기 위한 URL의 선택적 매개변수” 을 참조하십시오.)작은 정보devfile이 없는 Git 리포지토리의 URL을 제공하여 새 작업 공간을 시작할 수도 있습니다. 이렇게 하면 Universal Developer Image 및 Microsoft Visual Studio Code가 있는 작업 공간 - 작업 공간 IDE로 오픈 소스가 생성됩니다.
프로세스
Git 리포지토리 복제본으로 새 작업 공간을 시작하려면 다음을 수행합니다.
- 선택 사항: OpenShift Dev Spaces 대시보드 페이지를 방문하여 조직의 OpenShift Dev Spaces 인스턴스에 인증합니다.
URL을 방문하여 기본 구문을 사용하여 새 작업 공간을 시작합니다.
https://<openshift_dev_spaces_fqdn>#<git_repository_url>
https://<openshift_dev_spaces_fqdn>#<git_repository_url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보선택적 매개변수를 사용하여 이 URL을 확장할 수 있습니다.
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?<optional_parameters>
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?<optional_parameters>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보Git+SSH URL을 사용하여 새 작업 공간을 시작할 수 있습니다. Git 작업에 SSH 키를 사용하도록 DevWorkspaces 구성을참조하십시오.
예 1.1. 새 작업 공간을 시작하기 위한 URL
-
https://<openshift_dev_spaces_fqdn>#https://github.com/che-samples/cpp-hello-world -
https://<openshift_dev_spaces_fqdn>#git@github.com:che-samples/cpp-hello-world.git
예 1.2. GitHub 인스턴스 리포지토리 복제본으로 새 작업 공간을 시작하기 위한 URL 구문
-
https:// <openshift_dev_spaces_fqdn> #https:/// <user_or_org> / <repository>는 기본 분기의 복제본으로 새 작업 공간을 시작합니다. -
https:// <openshift_dev_spaces_fqdn> #https:/// <user_or_org> / <repository> /tree/ <branch_name>은 지정된 분기의 복제로 새 작업 영역을 시작합니다. -
https:// <openshift_dev_spaces_fqdn> #https:/// <user_or_org> / <repository> /pull/ <pull_request_id>는 가져오기 요청 분기의 분기 복제를 사용하여 새 작업 영역을 시작합니다. -
https:// <openshift_dev_spaces_fqdn> #git@: <user_or_org> / <repository > .git은 Git+SSH URL에서 새 작업 영역을 시작합니다.
예 1.3. GitLab 인스턴스 리포지토리 복제본으로 새 작업 공간을 시작하기 위한 URL 구문
-
https:// <openshift_dev_spaces_fqdn> #https:/// <user_or_org> / <repository>는 기본 분기의 복제본으로 새 작업 공간을 시작합니다. -
https:// <openshift_dev_spaces_fqdn> #https:/// <user_or_org> / <repository> /-/tree/ <branch_name>은 지정된 분기의 복제본으로 새 작업 영역을 시작합니다. -
https:// <openshift_dev_spaces_fqdn> #git@: <user_or_org> / <repository > .git은 Git+SSH URL에서 새 작업 영역을 시작합니다.
예 1.4. BitBucket Server 리포지토리 복제본으로 새 작업 공간을 시작하기 위한 URL 구문
-
https:// <openshift_dev_spaces_fqdn> #https:// <bb_host> /scm/ <project-key> / <repository > .git은 기본 분기를 복제하여 새 작업 영역을 시작합니다. -
HTTPS
:// <openshift_dev_spaces_fqdn> #https:// <bb_host> /users/ <user_slug> /repos/ <repository> /repository는 사용자 프로필 아래에 리포지토리가 생성된 경우 기본 분기의 복제본으로 새 작업 영역을 시작합니다. -
https:// <openshift_dev_spaces_fqdn> #https:// <bb_host> /users/ <user-slug> /repos/ <repository> /browse?at=refs%2Fheads%2F <branch-name>은 지정된 분기의 복제본으로 새 작업 공간을 시작합니다. -
https:// <openshift_dev_spaces_fqdn> #git@ <bb_host > : <user_slug> / <repository > .git은 Git+SSH URL에서 새 작업 영역을 시작합니다.
예 1.5. Microsoft Azure DevOps Git 리포지토리 복제본으로 새 작업 공간을 시작하기 위한 URL 구문
-
https:// <openshift_dev_spaces_fqdn> #https:// <organization> @dev.azure.com/ <organization> / <project> /_git/ <repository>는 기본 분기의 복제본이 포함된 새 작업 영역을 시작합니다. -
https:// <openshift_dev_spaces_fqdn> #https:// <organization> @dev.azure.com/ <organization> / <project> /_git/ <repository > ?version=GB <branch>는 특정 분기 복제를 사용하여 새 작업 영역을 시작합니다. -
HTTPS
:// <openshift_dev_spaces_fqdn> #git@ssh.dev.azure.com:v3/ <organization> / <project> / <repository>는 Git+SSH URL에서 새 작업 공간을 시작합니다.
URL을 입력하여 브라우저 탭에서 새 작업 공간을 시작하면 작업 영역 시작 페이지가 표시됩니다.
새 작업 공간이 준비되면 작업 공간 IDE가 브라우저 탭에 로드됩니다.
Git 리포지토리의 복제본이 새 작업 공간의 파일 시스템에 있습니다.
작업 공간의 고유 URL은
https:// <openshift_dev_spaces_fqdn> / <user_name> / <unique_url>입니다.-
추가 리소스
1.1.1. 새 작업 공간을 시작하기 위한 URL의 선택적 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
새 작업 공간을 시작할 때 OpenShift Dev Spaces는 devfile의 지침에 따라 작업 공간을 구성합니다. URL을 사용하여 새 작업 영역을 시작할 때 작업 영역을 추가로 구성하는 URL에 선택적 매개변수를 추가할 수 있습니다. 이러한 매개변수를 사용하여 작업 공간 IDE를 지정하고, 중복된 작업 공간을 시작하고, devfile 파일 이름 또는 경로를 지정할 수 있습니다.
1.1.1.1. URL 매개변수 연결 링크 복사링크가 클립보드에 복사되었습니다!
새 작업 공간을 시작하기 위한 URL은 다음 URL 구문과 함께 & amp;를 사용하여 여러 선택적 URL 매개변수를 연결할 수 있도록 지원합니다.
HTTPS:// <openshift_dev_spaces_fqdn> #? <url_parameter_1> & <url_parameter_2> & <url_parameter_3>
예 1.6. Git 리포지토리의 URL 및 선택적 URL 매개변수를 사용하여 새 작업 공간을 시작하는 URL
브라우저의 전체 URL:
https:// <openshift_dev_spaces_fqdn> #https://github.com/che-samples/cpp-hello-world?new&che-editor=che-incubator/intellij-community/latest&devfilePath=tests/testdevfile.yaml
URL 부분에 대한 설명:
https://<openshift_dev_spaces_fqdn> #https://github.com/che-samples/cpp-hello-world ?new&che-editor=che-incubator/intellij-community/latest&devfilePath=tests/testdevfile.yaml
https://<openshift_dev_spaces_fqdn>
#https://github.com/che-samples/cpp-hello-world
?new&che-editor=che-incubator/intellij-community/latest&devfilePath=tests/testdevfile.yaml
1.1.1.2. IDE의 URL 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
che-editor= URL 매개변수를 사용하여 작업 영역을 시작할 때 지원되는 IDE를 지정할 수 있습니다.
소스 코드 Git 리포지토리에서 /.che/che-editor.yaml 파일을 추가하거나 편집할 수 없는 경우 che-editor= 매개변수를 사용하여 작업 공간에 복제하십시오.
che-editor= 매개변수는 /.che/che-editor.yaml 파일을 재정의합니다.
이 매개변수는 다음 두 가지 유형의 값을 허용합니다.
che-editor=<editor_key>https://<openshift_dev_spaces_fqdn>#<git_repository_url>?che-editor=<editor_key>
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?che-editor=<editor_key>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 표 1.1. 지원되는 IDE에 대한 URL 매개변수 <editor_key > 값 IDE <editor_key>value참고 che-incubator/che-code/latest이는 URL 매개변수 또는
che-editor.yaml이 사용되지 않을 때 새 작업 공간에 로드되는 기본 IDE입니다.che-incubator/che-idea/latest기술 프리뷰. 대시보드를 사용하여 이 IDE를 선택합니다.
che-editor=<url_to_a_file>https://<openshift_dev_spaces_fqdn>#<git_repository_url>?che-editor=<url_to_a_file>
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?che-editor=<url_to_a_file>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- devfile 콘텐츠 가 있는 파일의 URL입니다.
작은 정보- URL은 원시 파일 콘텐츠를 가리켜야 합니다.
-
이 매개변수를
che-editor.yaml파일과 함께 사용하려면 다른 이름 또는 경로가 있는 파일을 복사한 다음 파일에서인라인으로 행을 제거합니다.
- che-editors.yaml 파일에 는 지원되는 모든 IDE의 devfile이 있습니다.
1.1.1.3. IDE 이미지의 URL 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
editor-image 매개변수를 사용하여 작업 공간에 대한 사용자 지정 IDE 이미지를 설정할 수 있습니다.
-
Git 리포지토리에
/.che/che-editor.yaml파일이 포함된 경우 사용자 지정 편집기가 새 IDE 이미지로 재정의됩니다. -
Git 리포지토리에
/.che/che-editor.yaml파일이 없으면 기본 편집기가 새 IDE 이미지로 재정의됩니다. -
지원되는 IDE를 재정의하고 대상 편집기 이미지를 변경하려면
che-editor및editor-imageURL 매개변수를 모두 함께 사용할 수 있습니다.
IDE 이미지를 재정의하는 URL 매개변수는 editor-image=:입니다.
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?editor-image=<container_registry/image_name:image_tag>
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?editor-image=<container_registry/image_name:image_tag>
예제:
https:// <openshift_dev_spaces_fqdn> #https://github.com/eclipse-che/che-docs?editor-image=quay.io/che-incubator/che-code:next
또는
https:// <openshift_dev_spaces_fqdn> #https://github.com/eclipse-che/che-docs?che-editor=che-incubator/che-code/latest&editor-image=quay.io/che-incubator/che-code:next
1.1.1.4. 중복 작업 공간을 시작하기 위한 URL 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
새 작업 공간을 시작하기 위한 URL을 방문하면 devfile 및 연결된 Git 리포지토리 복제본에 따라 새 작업 공간이 생성됩니다.
devfile 및 연결된 Git 리포지토리와 관련하여 중복된 작업 공간이 여러 개 있어야 하는 경우도 있습니다. URL 매개변수로 새 작업 영역을 시작하기 위해 동일한 URL을 방문하여 이 작업을 수행할 수 있습니다.
중복 작업 공간을 시작하기 위한 URL 매개변수는 다음과 같습니다.
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?new
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?new
현재 URL을 사용하여 시작한 작업 공간이 있는 경우 새 URL 매개변수 없이 URL을 다시 방문하면 오류 메시지가 표시됩니다.
1.1.1.5. devfile 파일 이름에 대한 URL 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
새 작업 공간을 시작하기 위해 URL을 방문하면 OpenShift Dev Spaces에서 파일 이름 .devfile.yaml 또는 devfile.yaml 을 사용하여 devfile의 연결된 Git 리포지토리를 검색합니다. 연결된 Git 리포지토리의 devfile은 이 file-naming 규칙을 따라야 합니다.
경우에 따라 devfile에 대해 서로 다르고 일치하지 않는 파일 이름을 지정해야 할 수 있습니다.
devfile의 일관되지 않은 파일 이름을 지정하는 URL 매개변수는 df= <filename> . yaml 입니다.
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?df=<filename>.yaml
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?df=<filename>.yaml
- 1
<filename > .yaml은 연결된 Git 리포지토리에 있는 devfile의 일관되지 않은 파일 이름입니다.
df= <filename > .yaml 매개변수에도 긴 버전: devfilePath= <filename > .yaml 이 있습니다.
1.1.1.6. devfile 파일 경로에 대한 URL 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
새 작업 공간을 시작하기 위해 URL을 방문하면 OpenShift Dev Spaces는 연결된 Git 리포지토리의 루트 디렉터리를 파일 이름 .devfile.yaml 또는 devfile.yaml 을 사용하여 devfile을 검색합니다. 연결된 Git 리포지토리에 있는 devfile의 파일 경로는 이 경로 규칙을 따라야 합니다.
연결된 Git 리포지토리에서 devfile에 대한 다른 비충분한 파일 경로를 지정해야 하는 경우도 있습니다.
devfile의 일관되지 않은 파일 경로를 지정하는 URL 매개변수는 devfilePath= <relative_file_path >입니다.
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?devfilePath=<relative_file_path>
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?devfilePath=<relative_file_path>
- 1
<relative_file_path>는 연결된 Git 리포지토리에 있는 devfile의 일관되지 않은 파일 경로입니다.
1.1.1.7. 작업 공간 스토리지에 대한 URL 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
새 작업 공간을 시작하기 위한 URL에 스토리지 유형을 지정하는 URL 매개 변수가 없으면 CheCluster 사용자 정의 리소스에서 기본 스토리지 유형으로 정의된 임시 또는 영구 스토리지로 새 작업 공간이 생성됩니다.
작업 공간에 스토리지 유형을 지정하는 URL 매개변수는 storage Type= <storage_type >입니다.
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?storageType=<storage_type>
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?storageType=<storage_type>
- 1
- 가능한 <
;storage_type>값은 다음과 같습니다.-
임시 -
사용자별(영구) -
작업당(persistent)
-
임시 또는 작업별 스토리지 유형을 사용하면 여러 작업 공간을 동시에 실행할 수 있으며 기본 사용자당 스토리지 유형은 사용할 수 없습니다.
추가 리소스
1.1.1.8. 추가 원격에 대한 URL 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
새 작업 공간을 시작하기 위해 URL을 방문하면 OpenShift Dev Spaces는 원본 원격을 조직의 OpenShift Dev Spaces 인스턴스의 FQDN URL 뒤에 # 로 지정한 Git 리포지토리로 구성합니다.
작업 공간에 대한 추가 원격 복제 및 구성을 위한 URL 매개변수는 remotes=:입니다.
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?remotes={{<name_1>,<url_1>},{<name_2>,<url_2>},{<name_3>,<url_3>},...}
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?remotes={{<name_1>,<url_1>},{<name_2>,<url_2>},{<name_3>,<url_3>},...}
-
추가 원격의 이름
원본을 입력하지 않으면 의 원격 이 복제되고origin이라는 이름이 기본적으로 지정되고 예상되는 분기가 자동으로 확인됩니다. -
추가 원격 중
하나에 대한 이름 원본을 입력하면 기본 분기가 자동으로 선택되지만 의 원격은 작업 공간에 대해 복제되지 않습니다.
1.1.1.9. 컨테이너 이미지의 URL 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
다음 시나리오에서 image 매개변수를 사용하여 컨테이너 이미지에 대한 사용자 정의 참조를 사용할 수 있습니다.
- Git 리포지토리에는 devfile이 없으며 사용자 지정 이미지로 새 작업 공간을 시작하려고 합니다.
-
Git 리포지토리에는 devfile이 포함되어 있으며 devfile의
구성 요소섹션에 나열된 첫 번째 컨테이너 이미지를 재정의하려고 합니다.
컨테이너 이미지 경로의 URL 매개변수는 image=:입니다.
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?image=<container_image_url>
https://<openshift_dev_spaces_fqdn>#<git_repository_url>?image=<container_image_url>
예
https:// <openshift_dev_spaces_fqdn> #https://github.com/eclipse-che/che-docs?image=quay.io/devfile/universal-developer-image:ubi8-latest
1.2. 원시 devfile URL에서 작업 공간 시작 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dev Spaces를 사용하면 브라우저에서 devfile URL을 열어 새 작업 공간을 시작할 수 있습니다.
OpenShift Dev Spaces 대시보드의 Create Workspace 페이지에서 Git Repo URL 필드를 사용하여 devfile 의 URL을 입력하여 새 작업 영역을 시작할 수 있습니다.
새 작업 공간의 파일 시스템에서 Git 리포지토리 복제본을 시작하려면 devfile에 프로젝트 정보가 포함되어야 합니다.
사전 요구 사항
- 조직에는 실행 중인 OpenShift Dev Spaces 인스턴스가 있습니다.
-
조직의 OpenShift Dev Spaces 인스턴스의 FQDN URL을 알고 있습니다.
https:// <openshift_dev_spaces_fqdn>.
프로세스
devfile URL에서 새 작업 공간을 시작하려면 다음을 수행합니다.
- 선택 사항: OpenShift Dev Spaces 대시보드 페이지를 방문하여 조직의 OpenShift Dev Spaces 인스턴스에 인증합니다.
URL을 방문하여 기본 구문을 사용하여 공용 리포지토리에서 새 작업 공간을 시작합니다.
https://<openshift_dev_spaces_fqdn>#<devfile_url>
https://<openshift_dev_spaces_fqdn>#<devfile_url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 개인 액세스 토큰을 URL에 전달하여 프라이빗 리포지토리에서 devfile에 액세스할 수 있습니다.
https://<openshift_dev_spaces_fqdn>#https://<token>@<host>/<path_to_devfile>
https://<openshift_dev_spaces_fqdn>#https://<token>@<host>/<path_to_devfile>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Git 공급자의 웹 사이트에서 생성한 개인 액세스 토큰입니다.
이는 GitHub, GitLab, Bitbucket, Microsoft Azure 및 개인 액세스 토큰을 지원하는 기타 공급자에서 작동합니다.
중요이 경우 자동화된 Git 인증 정보 삽입이 작동하지 않습니다. Git 자격 증명을 구성하려면 개인 액세스 토큰 구성 가이드를 사용합니다.
작은 정보선택적 매개변수를 사용하여 이 URL을 확장할 수 있습니다.
https://<openshift_dev_spaces_fqdn>#<devfile_url>?<optional_parameters>
https://<openshift_dev_spaces_fqdn>#<devfile_url>?<optional_parameters>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예 1.7. 공용 리포지토리에서 새 작업 공간을 시작하기 위한 URL
https:// <openshift_dev_spaces_fqdn> #https://raw.githubusercontent.com/che-samples/cpp-hello-world/main/devfile.yaml예 1.8. 프라이빗 리포지토리에서 새 작업 공간을 시작하기 위한 URL
https:// <openshift_dev_spaces_fqdn> #https:// <token> @raw.githubusercontent.com/che-samples/cpp-hello-world/main/devfile.yaml검증
URL을 입력하여 브라우저 탭에서 새 작업 공간을 시작하면 작업 영역 시작 페이지가 표시됩니다. 새 작업 공간이 준비되면 작업 공간 IDE가 브라우저 탭에 로드됩니다.
작업 공간의 고유 URL은
https:// <openshift_dev_spaces_fqdn> / <user_name> / <unique_url>입니다.
1.3. 작업 영역에서 수행할 수 있는 기본 작업 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dev Spaces 대시보드의 작업 공간을 관리하고 현재 작업 공간 페이지(https:// <openshift_dev_spaces_fqdn> /dashboard/#/workspaces)에서 현재 상태를 확인합니다.
새 작업 공간을 시작한 후 Workspaces 페이지에서 다음 작업을 수행할 수 있습니다.
| 동작 | Workspace 페이지의 GUI 단계 |
|---|---|
| 실행 중인 작업 공간 다시 열기 | Open 을 클릭합니다. |
| 실행 중인 작업 공간 재시작 | Cryostat & gt; Restart Workspace 로 이동합니다. |
| 실행 중인 작업 공간 중지 | Cryostat & gt; Stop Workspace 로 이동합니다. |
| 중지된 작업 공간 시작 | Open 을 클릭합니다. |
| 작업 공간 삭제 | Cryostat & gt; Delete Workspace 로 이동합니다. |
1.4. 작업 영역에서 Git 서버에 인증 링크 복사링크가 클립보드에 복사되었습니다!
작업 영역에서 원격 개인 Git 리포지토리 복제 또는 원격 공용 또는 프라이빗 Git 리포지토리로 내보내는 것과 같은 사용자 인증이 필요한 Git 명령을 실행할 수 있습니다.
작업 영역에서 Git 서버에 대한 사용자 인증은 관리자 또는 경우에 따라 개별 사용자가 구성합니다.
- 관리자는 조직의 Red Hat OpenShift Dev Spaces 인스턴스에 대한 GitHub, GitLab, Bitbucket 또는 Microsoft Azure Repos에 OAuth 애플리케이션을 설정합니다.
- 이 문제를 해결하려면 일부 사용자는 개인 Git 공급자 액세스 토큰에 대해 자체 Kubernetes 보안을 생성 및 적용하거나 Git 작업에 대한 SSH 키를 구성합니다.
1.5. Podman 및 Buildah에 fuse-overlayfs 스토리지 드라이버 사용 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 devfile을 지정하지 않는 새로 생성된 작업 공간은 UDI(Universal Developer Image)를 사용합니다. UDI에는 일반적으로 개발자가 사용하는 공통 개발 툴과 종속성이 포함되어 있습니다.
Podman 및 Buildah는 UDI에 포함되어 있어 개발자가 작업 영역에서 컨테이너 이미지를 빌드하고 내보낼 수 있습니다.
기본적으로 UDI의 Podman 및 Buildah는 vfs 스토리지 드라이버를 사용하도록 구성됩니다. 보다 효율적인 이미지 관리를 위해 루트 없는 환경에서 COW(Copy-On-Write)를 지원하는 fuse-overlayfs 스토리지 드라이버를 사용하십시오.
작업 영역에서 fuse-overlayfs를 사용하려면 다음 요구 사항을 충족해야 합니다.
-
4.15 이전 버전의 OpenShift의 경우 관리자는 https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.18/html-single/administration_guide/index#administration-guide:configuring-fuse 에 따라 클러스터에서
/dev/fuse액세스를 활성화했습니다. -
작업 공간에는
/dev/fuse장치를 사용하는 데 필요한 주석이 있습니다. 1.5.1절. “/dev/fuse에 액세스”을 참조하십시오. -
작업 공간 컨테이너의
storage.conf파일이 fuse-overlayfs를 사용하도록 구성되어 있습니다. 1.5.2절. “ConfigMap을 사용하여 fuse-overlayfs 활성화”을 참조하십시오.
추가 리소스
1.5.1. /dev/fuse에 액세스 링크 복사링크가 클립보드에 복사되었습니다!
fuse-overlayfs를 사용하려면 /dev/fuse 에 액세스할 수 있어야 합니다. 이 섹션에서는 작업 공간 컨테이너에서 /dev/fuse 를 액세스하는 방법을 설명합니다.
사전 요구 사항
-
4.15 이전 버전의 경우 관리자는 https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.18/html-single/administration_guide/index#administration-guide:configuring-fuse 을 사용하여
/dev/fuse에 액세스할 수 있습니다. - fuse-overlayfs를 사용할 작업 공간을 결정합니다.
프로세스
pod-overrides속성을 사용하여 https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.18/html-single/administration_guide/index#administration-guide:configuring-fuse 에 정의된 필수 주석을 작업 공간에 추가합니다.pod-overrides특성을 사용하면 작업 공간 Pod의 사양에서 특정 필드를 병합할 수 있습니다.4.15 이전 버전의 OpenShift의 경우:
oc patch devworkspace <DevWorkspace_name> \ --patch '{"spec":{"template":{"attributes":{"pod-overrides":{"metadata":{"annotations":{"io.kubernetes.cri-o.Devices":"/dev/fuse","io.openshift.podman-fuse":""}}}}}}}' \ --type=merge$ oc patch devworkspace <DevWorkspace_name> \ --patch '{"spec":{"template":{"attributes":{"pod-overrides":{"metadata":{"annotations":{"io.kubernetes.cri-o.Devices":"/dev/fuse","io.openshift.podman-fuse":""}}}}}}}' \ --type=mergeCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift 버전 4.15 이상의 경우:
oc patch devworkspace <DevWorkspace_name> \ --patch '{"spec":{"template":{"attributes":{"pod-overrides":{"metadata":{"annotations":{"io.kubernetes.cri-o.Devices":"/dev/fuse"}}}}}}}' \ --type=merge$ oc patch devworkspace <DevWorkspace_name> \ --patch '{"spec":{"template":{"attributes":{"pod-overrides":{"metadata":{"annotations":{"io.kubernetes.cri-o.Devices":"/dev/fuse"}}}}}}}' \ --type=mergeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증 단계
작업 영역을 시작하고 작업 공간 컨테이너에서
/dev/fuse를 사용할 수 있는지 확인합니다.stat /dev/fuse
$ stat /dev/fuseCopy to Clipboard Copied! Toggle word wrap Toggle overflow
이 절차를 완료한 후 1.5.2절. “ConfigMap을 사용하여 fuse-overlayfs 활성화” 의 단계에 따라 Podman에 fuse-overlayfs를 사용합니다.
1.5.2. ConfigMap을 사용하여 fuse-overlayfs 활성화 링크 복사링크가 클립보드에 복사되었습니다!
~/.config/containers/storage.conf 파일에서 Podman 및 Buildah의 스토리지 드라이버를 정의할 수 있습니다. 다음은 UDI 컨테이너에 있는 /home/user/.config/containers/storage.conf 파일의 기본 내용입니다.
storage.conf
[storage] driver = "vfs"
[storage]
driver = "vfs"
fuse-overlayfs를 사용하려면 storage.conf 를 다음으로 설정할 수 있습니다.
storage.conf
[storage] driver = "overlay" [storage.options.overlay] mount_program="/usr/bin/fuse-overlayfs"
[storage]
driver = "overlay"
[storage.options.overlay]
mount_program="/usr/bin/fuse-overlayfs"
- 1
fuse-overlayfs바이너리의 절대 경로입니다./usr/bin/fuse-overlayfs경로는 UDI의 기본값입니다.
작업 영역을 시작한 후 수동으로 이 작업을 수행할 수 있습니다. 또 다른 옵션은 storage.conf 변경 사항으로 UDI를 기반으로 새 이미지를 빌드하고 작업 공간에 새 이미지를 사용하는 것입니다.
그렇지 않으면 업데이트된 파일을 마운트하는 ConfigMap을 생성하여 프로젝트의 모든 작업 공간에 대해 /home/user/.config/containers/storage.conf 를 업데이트할 수 있습니다. 6.2절. “마운트 ConfigMap”을 참조하십시오.
사전 요구 사항
-
4.15 이전 버전의 경우 관리자는 https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.18/html-single/administration_guide/index#administration-guide:configuring-fuse 을 사용하여
/dev/fuse에 액세스할 수 있습니다. - 필요한 주석이 있는 작업 공간은 다음과 같이 설정됩니다. 1.5.1절. “/dev/fuse에 액세스”
이 가이드에 따라 마운트된 ConfigMap은 ConfigMap의 데이터를 모든 작업 공간에 마운트하므로 이 절차에 따라 모든 작업 공간에 대한 스토리지 드라이버를 fuse-overlayfs로 설정합니다. 1.5.1절. “/dev/fuse에 액세스” 에서 fuse-overlayfs를 사용하는 데 필요한 주석이 작업 공간에 포함되어 있는지 확인합니다.
프로세스
프로젝트에
/home/user/.config/containers/storage.conf파일을 마운트하는 ConfigMap을 적용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 주의이 ConfigMap을 생성하면 실행 중인 모든 작업 공간이 다시 시작됩니다.
검증 단계
필요한 주석이 포함된 작업 공간을 시작하고 스토리지 드라이버가
오버레이인지 확인합니다.podman info | grep overlay
$ podman info | grep overlayCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고기존 작업 공간에 대해 다음 오류가 발생할 수 있습니다.
ERRO[0000] User-selected graph driver "overlay" overwritten by graph driver "vfs" from database - delete libpod local files ("/home/user/.local/share/containers/storage") to resolve. May prevent use of images created by other toolsERRO[0000] User-selected graph driver "overlay" overwritten by graph driver "vfs" from database - delete libpod local files ("/home/user/.local/share/containers/storage") to resolve. May prevent use of images created by other toolsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 경우 오류 메시지에 언급된 libpod 로컬 파일을 삭제합니다.
1.6. kubedock으로 컨테이너 실행 링크 복사링크가 클립보드에 복사되었습니다!
Kubedock 은 OpenShift Dev Spaces 작업 공간 내에서 Podman/docker와 같은 환경을 제공하는 최소 컨테이너 엔진 구현입니다. Kubedock은 아래 나열된 사용 사례와 같이 임시, 임시 및 테스트 컨테이너를 처리할 때 특히 유용합니다.
- Testcontainers 프레임워크를 사용하는 애플리케이션 테스트 실행.
- Quarkus Dev Services 사용
- 로컬 개발 목적으로 원격 컨테이너 레지스트리에 저장된 컨테이너 실행
kubedock과 함께 사용하려는 이미지는 Openshift Container Platform 지침을 준수해야 합니다. 그러지 않으면 kubedock으로 이미지를 실행하면 동일한 이미지가 문제 없이 로컬로 실행되는 경우에도 오류가 발생합니다.
kubedock 활성화
kubedock 환경 변수를 활성화한 후 kubedock은 다음 podman 명령을 실행합니다.
-
podman run -
podman ps -
podman exec -
podman cp -
Podman 로그 -
podman inspect -
podman kill -
podman rm -
podman wait -
podman stop -
podman start
podman build 와 같은 기타 명령은 로컬 Podman에서 시작합니다.
kubedock에서 podman 명령을 사용하면 다음과 같은 제한 사항이 있습니다.
-
podman build -t <image> . && podman run <image> 명령이 실패합니다.podman build -t <image> . && podman push <image> && podman run <image>을 대신 사용하십시오. -
podman generate kube명령은 지원되지 않습니다. -
--env옵션을 사용하면podman run명령이 실패합니다.
사전 요구 사항
- Openshift Container Platform 지침 과 호환되는 이미지
프로세스
devfile에
KUBEDOCK_ENABLED=true환경 변수를 추가합니다.(OPTIONAL)
KUBEDOCK_PARAM변수를 사용하여 추가 kubedock 매개변수를 지정합니다. 변수 목록은 여기에서 사용할 수 있습니다. 또는 다음 명령을 사용하여 사용 가능한 옵션을 볼 수 있습니다.kubedock server --help
# kubedock server --helpCopy to Clipboard Copied! Toggle word wrap Toggle overflow
예
컨테이너를 실행할 때 kubedock 설정 CONTAINER_HOST=tcp://127.0.0.1:2475 또는 DOCKER_HOST=tcp://127.0.0.1:2475 를 가리키도록 Podman 또는 Docker API를 구성해야 합니다.
동시에 컨테이너를 빌드할 때 로컬 Podman을 가리키도록 Podman을 구성해야 합니다.
2장. 팀 워크플로에서 Dev Spaces 사용 링크 복사링크가 클립보드에 복사되었습니다!
다음 문서를 통해 조직에서 OpenShift Dev Spaces를 사용할 때의 이점에 대해 알아보십시오.
2.1. 첫 번째 기여자를 위한 배지 링크 복사링크가 클립보드에 복사되었습니다!
최초 기여자가 프로젝트로 작업 공간을 시작할 수 있도록 하려면 OpenShift Dev Spaces 인스턴스에 대한 링크가 포함된 배지를 추가합니다.
그림 2.1. 팩토리 배지
프로세스
OpenShift Dev Spaces URL(
https:// <openshift_dev_spaces_fqdn> ) 및 리포지토리 URL( <your_repository_url> )을 대체하고 프로젝트README.md파일의 리포지토리에 링크를 추가합니다.[](https://<openshift_dev_spaces_fqdn>/#https://<your_repository_url>)
[](https://<openshift_dev_spaces_fqdn>/#https://<your_repository_url>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Git 공급자 웹 인터페이스의
README.md파일에는 팩토리 배지가 표시됩니다. 배지를 클릭하여 OpenShift Dev Spaces 인스턴스에서 프로젝트의 작업 공간을 엽니다.
2.2. 가져오기 및 병합 요청 검토 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift Dev Spaces 작업 공간에는 가져오기 및 병합 요청을 처음부터 끝까지 검토하는 데 필요한 모든 툴이 포함되어 있습니다. OpenShift Dev Spaces 링크를 클릭하면 linter, 단위 테스트, 빌드 등을 실행할 수 있는 즉시 사용 가능한 작업 공간을 사용하여 Red Hat OpenShift Dev Spaces 지원 웹 IDE에 액세스할 수 있습니다.
사전 요구 사항
- Git 공급자가 호스팅하는 리포지토리에 액세스할 수 있습니다.
- OpenShift Dev Spaces 인스턴스에 액세스할 수 있습니다.
프로세스
- 기능 분기를 열어 OpenShift Dev Spaces에서 검토합니다. 디버깅 및 테스트를 위한 도구가 포함된 작업 영역에서 분기 복제가 열립니다.
- 가져오기 또는 병합 요청 변경 사항을 확인합니다.
원하는 디버깅 및 테스트 도구를 실행합니다.
- linter를 실행합니다.
- 단위 테스트를 실행합니다.
- 빌드를 실행합니다.
- 애플리케이션을 실행하여 문제를 확인합니다.
- Git 공급자의 UI로 이동하여 의견을 남기고 할당된 요청을 가져오거나 병합합니다.
검증
- (선택 사항) 리포지토리의 주요 분기를 사용하여 두 번째 작업 영역을 열어 문제를 재현합니다.
2.3. 웹 IDE GitHub 작업에서 사용해 보십시오. 링크 복사링크가 클립보드에 복사되었습니다!
Try in Web IDE GitHub 작업을 GitHub 리포지토리 워크플로에 추가하여 검토자가 Red Hat에서 호스팅하는 Eclipse Che에 대한 가져오기 요청을 신속하게 테스트할 수 있습니다. 이 작업은 요청 가져오기 이벤트를 청취하고 주석, 상태 점검 또는 둘 다를 생성하여 팩토리 URL을 제공하여 이를 수행합니다. 이 팩토리 URL은 Red Hat에서 호스팅하는 Eclipse Che의 가져오기 요청 분기에서 새 작업 공간을 생성합니다.
Che 문서 리포지토리( https://github.com/eclipse/che-docs)는 웹 IDE GitHub 작업에서 Try in Web IDE GitHub 작업을 통해 가져오기 요청을 신속하게 테스트하는 데 도움이 되는 실제 예제입니다.https://github.com/eclipse/che-docs 최근 가져오기 요청으로 이동하고 팩토리 URL을 열어 워크플로우를 경험하십시오.
그림 2.2. Try in Web IDE GitHub 작업에서 생성한 가져오기 요청 주석입니다. 배지를 클릭하면 검토자가 가져오기 요청을 테스트할 수 있는 새 작업 공간이 열립니다.
그림 2.3. Try in Web IDE GitHub 작업에서 생성한 가져오기 요청 상태 점검입니다. "세부 정보" 링크를 클릭하면 검토자가 가져오기 요청을 테스트할 수 있는 새 작업 공간이 열립니다.
2.3.1. GitHub 리포지토리 워크플로에 작업 추가 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 Try in Web IDE GitHub 작업을 GitHub 리포지토리 워크플로에 통합하는 방법을 설명합니다.
사전 요구 사항
- GitHub 리포지토리
- GitHub 리포지토리의 루트에 있는 devfile입니다.
프로세스
-
GitHub 리포지토리에서 아직 없는 경우
.github/workflows디렉터리를 만듭니다. 다음 콘텐츠를 사용하여
.github/workflows디렉터리에example.yml파일을 생성합니다.예 2.1. example.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 코드 조각은
redhat-actions/try-라는 워크플로를 생성합니다.in-web-ide커뮤니티 작업의v1버전을 실행하는 작업을 사용하여 Web IDE 예제에서 Try열린활동 유형의pull_request_target이벤트에서 워크플로가 트리거됩니다.필요한 경우 워크플로우 트리거 시 사용자 지정하도록
on.pull_request_target.types필드에서 활동 유형을 구성합니다. 다시 열리거나동기화와같은 활동 유형은 유용할 수 있습니다.예 2.2.
열린활동 유형 및동기화활동 유형 모두에서 워크플로 트리거on: pull_request_target: types: [opened, synchronize]on: pull_request_target: types: [opened, synchronize]Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
선택적으로
example.yml에서add_comment및add_statusGitHub 작업 입력을 구성합니다. 이러한 입력은 주석 및 상태 검사를 수행할지 여부를 사용자 지정하기 위해 Web IDE GitHub 작업에서 Try in Web IDE GitHub 작업으로 전송됩니다.
2.3.2. devfile 제공 링크 복사링크가 클립보드에 복사되었습니다!
리포지토리의 루트 디렉터리에 devfile 을 제공하는 것이 좋습니다. 팩토리 URL에서 생성한 작업 공간의 개발 환경을 정의하는 것이 좋습니다. 이러한 방식으로 작업 공간에는 플러그인, 개발 명령 및 기타 환경 설정과 같은 가져오기 요청을 검토하는 데 필요한 모든 항목이 포함되어 있습니다.
Che 문서 리포지토리 devfile 은 잘 정의되고 효과적인 devfile의 예입니다.
3장. 작업 공간 구성 요소 사용자 정의 링크 복사링크가 클립보드에 복사되었습니다!
작업 공간 구성 요소를 사용자 지정하려면 다음을 수행합니다.
- 작업 공간에 대한 Git 리포지토리를 선택합니다.
- devfile을 사용합니다.
- IDE를 구성합니다.
- 일반 devfile 사양 외에도 OpenShift Dev Spaces 특정 속성을 추가합니다.
4장. Dev Spaces에서 devfile 소개 링크 복사링크가 클립보드에 복사되었습니다!
devfile 은 개발 환경 사용자 지정에 사용되는 yaml 텍스트 파일입니다. 이를 사용하여 특정 요구에 맞게 devfile을 구성하고 여러 작업 영역에서 사용자 지정 devfile을 공유하여 팀 전체의 동일한 사용자 환경을 유지하고 실행하며 동작을 배포하도록 합니다.
Red Hat OpenShift Dev Spaces는 devfile의 구성 요소 섹션에 정의된 대부분의 널리 사용되는 이미지와 함께 작동할 것으로 예상됩니다. 프로덕션 용도의 경우 Cloud Development Environment를 정의하기 위한 기본 이미지로 Universal Base Images 중 하나를 사용하는 것이 좋습니다.
일부 이미지는 Visual Studio Code - 오픈 소스("Code - OSS")가 누락된 openssl 및 libbrotli 가 있는 컨테이너에서 시작할 수 없기 때문에 클라우드 개발 환경을 정의하는 데 사용할 수 없습니다. 누락된 라이브러리는 Dockerfile 수준에 명시적으로 설치해야 합니다. 예를 들어 RUN yum install compat-openssl11 libbrotli
devfile 및 Universal Developer Image
작업 영역을 시작하는 데 devfile이 필요하지 않습니다. 프로젝트 리포지토리에 devfile을 포함하지 않는 경우 Red Hat OpenShift Dev Spaces는 UDI(Universal Developer Image)를 사용하여 기본 devfile을 자동으로 로드합니다.
devfile 레지스트리
devfile Registry 에는 다양한 언어 및 기술을 위해 즉시 사용할 수 있는 커뮤니티 지원 devfile이 포함되어 있습니다. 레지스트리에 포함된 devfile은 템플릿이 아닌 샘플로 처리되어야 합니다.
5장. 작업 공간의 IDE 링크 복사링크가 클립보드에 복사되었습니다!
5.1. 지원되는 IDE 링크 복사링크가 클립보드에 복사되었습니다!
새 작업 공간의 기본 IDE는 Microsoft Visual Studio Code - 오픈 소스입니다. 또는 다른 지원되는 IDE를 선택할 수 있습니다.
| IDE | id | 참고 |
|---|---|---|
|
|
이는 URL 매개변수 또는 | |
|
| 기술 프리뷰. 대시보드를 사용하여 이 IDE를 선택합니다. |
5.2. OpenShift Dev Spaces의 리포지토리 수준 IDE 구성 링크 복사링크가 클립보드에 복사되었습니다!
프로젝트 소스 코드가 포함된 원격 Git 리포지토리에 직접 IDE 구성 파일을 저장할 수 있습니다. 이렇게 하면 해당 리포지토리의 복제본이 있는 모든 새 작업 공간에 하나의 공통 IDE 구성이 적용됩니다. 이러한 IDE 구성 파일에는 다음이 포함될 수 있습니다.
-
선택한 IDE의 정의를 저장하는
/.che/che-editor.yaml파일입니다. -
IDE별 구성 파일은 일반적으로 데스크탑 IDE에 로컬로 저장됩니다. 예를 들어
/.vscode/extensions.json파일은 다음과 같습니다.
5.3. Microsoft Visual Studio Code - 오픈 소스 링크 복사링크가 클립보드에 복사되었습니다!
Microsoft Visual Studio Code의 OpenShift Dev Spaces 빌드 - 오픈 소스 는 새 작업 공간의 기본 IDE입니다.
작업 공간 시작 시 Open VSX 레지스트리에서 Microsoft Visual Studio Code 확장 프로그램의 설치를 자동화할 수 있습니다. 작업 영역 시작 시 Microsoft Visual Studio Code 확장 프로그램 자동 설치를 참조하십시오.
-
Tasks 를 사용하여
devfile.yaml에 지정된 명령을 찾아 실행합니다. 상태 표시줄에서 Dev Spaces 를 클릭하거나 Commandlets를 통해 Dev Spaces 명령을 사용하여 Dev Spaces 명령을 사용합니다.
- Dev Spaces: Open Dashboard
- Dev Spaces: Open OpenShift Console
- Dev Spaces: 작업 공간 중지
- dev Spaces: Workspace 재시작
- Dev Spaces: 로컬 Devfile에서 Workspace 재시작
- Dev Spaces: 오픈 문서
명령줄 을 호출하고 Preferences: Open Workspace Settings 을 선택하여 Workspace별로 IDE 기본 설정을 구성합니다.
브랜드화된 빌드를 통해 조직에서 사용자 정의하면 이 IDE에서 조직의 브랜딩을 확인할 수 있습니다.
5.3.1. 작업 영역 시작 시 Microsoft Visual Studio Code 확장 프로그램 설치 자동화 링크 복사링크가 클립보드에 복사되었습니다!
Microsoft Visual Studio Code - Open Source IDE에서 선택한 확장을 자동으로 설치하려면 프로젝트 소스 코드가 포함된 원격 Git 리포지토리에 extensions.json 파일을 추가하고 작업 공간에 복제할 수 있습니다.
사전 요구 사항
open-vsx.org 의 공개 OpenVSX 레지스트리가 선택되고 인터넷을 통해 액세스할 수 있습니다. Open VSX 레지스트리 인스턴스 선택을 참조하십시오.
작은 정보제한된 환경에 권장 확장 기능을 설치하려면 대신 다음 옵션을 고려하십시오.
프로세스
선택한 각 확장의 게시자 및 확장 이름을 가져옵니다.
- Open VSX 레지스트리 웹 사이트에서 확장을 찾고 확장 프로그램 목록 페이지의 URL을 복사합니다.
복사한 URL에서 <publisher > 및 <extension> 이름을 추출합니다.
https://www.open-vsx.org/extension/<publisher>/<extension>
https://www.open-vsx.org/extension/<publisher>/<extension>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
원격 Git 리포지토리에
.vscode/extensions.json파일을 생성합니다. 다음과 같이
extensions.json파일에 < publisher > 및 <extension> 이름을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
-
생성된
extensions.json파일이 포함된 원격 Git 리포지토리의 URL을 사용하여 새 작업 공간을 시작합니다. - 작업 공간의 IDE에서 Ctrl+Shift+X 를 클릭하거나 Extensions 로 이동하여 파일에 나열된 각 확장 기능을 찾습니다.
- 확장에는 This extension is enabled globally 라는 레이블이 있습니다.
5.4. 공통 IDE 정의 링크 복사링크가 클립보드에 복사되었습니다!
1.1.1.2절. “IDE의 URL 매개변수” 를 사용하면 지원되는 IDE의 개인 선택으로 작업 공간을 시작할 수 있지만 동일한 소스 코드 Git 리포지토리에 대한 모든 작업 공간에 대해 동일한 IDE를 정의하는 것이 더 편리합니다. 이렇게 하려면 che-editor.yaml 파일을 사용합니다. 이 파일은 자세한 IDE 구성도 지원합니다.
Microsoft Visual Studio Code - Open Source 이외의 동일한 IDE로 조직의 작업 공간을 대부분 또는 모두 시작하려는 경우, 조직의 OpenShift Dev Spaces 인스턴스의 관리자가 OpenShift Dev Spaces 인스턴스 수준에서 다른 지원되는 IDE를 기본 IDE로 지정하는 것이 대안입니다. 이 작업은 CheCluster 사용자 정의 리소스의 .spec.devEnvironments.defaultEditor 를 사용하여 수행할 수 있습니다.
5.4.1. che-editor.yaml 설정 링크 복사링크가 클립보드에 복사되었습니다!
che-editor.yaml 파일을 사용하면 팀에 공통 기본 IDE를 설정하고 프로젝트 소스 코드에 가장 적합한 IDE를 새 기여자에게 제공할 수 있습니다. 조직의 OpenShift Dev Spaces 인스턴스의 기본 IDE 대신 특정 소스 코드 Git 리포지토리에 대해 다른 IDE 기본값을 설정해야 하는 경우 che-editor.yaml 파일을 사용할 수도 있습니다.
프로세스
-
프로젝트 소스 코드의 원격 Git 리포지토리에서 관련 매개 변수를 지정하는 행을 사용하여
/.che/che-editor.yaml파일을 생성합니다.
검증
- Git 리포지토리 복제본으로 새 작업 공간을 시작합니다.
- 지정된 IDE가 시작된 작업 공간의 브라우저 탭에 로드되는지 확인합니다.
5.4.2. che-editor.yaml 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
che-editor.yaml 에서 IDE를 선택하는 가장 간단한 방법은 지원되는 IDE 표에서 IDE의 ID를 지정하는 것입니다.
| IDE | id | 참고 |
|---|---|---|
|
|
이는 URL 매개변수 또는 | |
|
| 기술 프리뷰. 대시보드를 사용하여 이 IDE를 선택합니다. |
예 5.1. id 플러그인 레지스트리에서 IDE 선택
id: che-incubator/che-idea/latest
id: che-incubator/che-idea/latest
id 매개변수를 제공하는 대신 che-editor.yaml 파일은 다른 che-editor.yaml 파일의 URL 또는 플러그인 레지스트리 외부의 IDE에 대한 인라인 정의를 지원합니다.
예 5.2. 원격 che-editor.yaml 파일을 참조합니다.
reference: https://<hostname_and_path_to_a_remote_file>/che-editor.yaml
reference: https://<hostname_and_path_to_a_remote_file>/che-editor.yaml
예 5.3. 인라인 은 플러그인 레지스트리 없이 사용자 지정 IDE에 대한 전체 정의를 지정합니다.
더 복잡한 시나리오의 경우 che-editor.yaml 파일은 registryUrl 및 override 매개변수를 지원합니다.
예 5.4. registryUrl 은 기본 OpenShift Dev Spaces 플러그인 레지스트리 대신 사용자 정의 플러그인 레지스트리를 가리킵니다.
id: <editor_id> registryUrl: <url_of_custom_plugin_registry>
id: <editor_id>
registryUrl: <url_of_custom_plugin_registry>
- 1
- 사용자 정의 플러그인 레지스트리에 있는 IDE의 ID입니다.
예 5.5. IDE의 하나 이상의 정의된 속성의 기본값 재정의
- 1
ID:,registryUrl:, 또는reference:.
6장. 작업 영역에서 인증 정보 및 구성 사용 링크 복사링크가 클립보드에 복사되었습니다!
작업 영역에서 인증 정보 및 구성을 사용할 수 있습니다.
이렇게 하려면 조직의 OpenShift Dev Spaces 인스턴스의 OpenShift 클러스터에 있는 Dev Workspace 컨테이너에 인증 정보 및 구성을 마운트합니다.
- 인증 정보 및 민감한 구성을 Kubernetes 시크릿으로 마운트합니다.
- 중요하지 않은 구성을 Kubernetes ConfigMap으로 마운트합니다.
클러스터의 Dev Workspace Pod가 인증이 필요한 컨테이너 레지스트리에 액세스하도록 허용해야 하는 경우 Dev Workspace Pod에 대한 이미지 가져오기 보안 을 생성합니다.
마운트 프로세스에서는 표준 Kubernetes 마운트 메커니즘을 사용하며 기존 리소스에 추가 라벨 및 주석을 적용해야 합니다. 새 작업 영역을 시작하거나 기존 작업 영역을 다시 시작할 때 리소스가 마운트됩니다.
다양한 구성 요소에 대한 영구 마운트 지점을 생성할 수 있습니다.
-
사용자별
settings.xml파일과 같은 Maven 구성 - SSH 키 쌍
- git-provider 액세스 토큰
- Git 구성
- AWS 권한 부여 토큰
- 구성 파일
- 영구 스토리지
6.1. 마운트 보안 링크 복사링크가 클립보드에 복사되었습니다!
기밀 데이터를 작업 공간에 마운트하려면 Kubernetes 보안을 사용합니다.
Kubernetes 보안을 사용하면 사용자 이름, 암호, SSH 키 쌍, 인증 토큰(예: AWS) 및 중요한 구성을 마운트할 수 있습니다.
조직의 OpenShift Dev Spaces 인스턴스의 OpenShift 클러스터에 있는 Dev Workspace 컨테이너에 Kubernetes 보안을 마운트합니다.
사전 요구 사항
-
대상 OpenShift 클러스터에 대한 관리 권한이 있는 활성
oc세션. CLI 시작하기를 참조하십시오. -
사용자 프로젝트에서 새 시크릿을 생성하거나 모든
Dev Workspace컨테이너에 마운트할 기존 보안을 선택했습니다.
프로세스
시크릿을 마운트하는 데 필요한 레이블을 시크릿에 추가합니다.
oc label secret <Secret_name> \ controller.devfile.io/mount-to-devworkspace=true \ controller.devfile.io/watch-secret=true$ oc label secret <Secret_name> \ controller.devfile.io/mount-to-devworkspace=true \ controller.devfile.io/watch-secret=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 주석을 사용하여 시크릿 마운트 방법을 구성합니다.
Expand 표 6.1. 선택적 주석 주석 설명 controller.devfile.io/mount-path:마운트 경로를 지정합니다.
기본값은
/etc/secret/ <Secret_name>입니다.controller.devfile.io/mount-as:리소스를 마운트하는 방법(
file,subpath또는env)을 지정합니다.기본값은
file입니다.mount-as: 파일은키와 값을 마운트 경로에 파일로 마운트합니다.mount-as: 하위 경로는 subpath볼륨 마운트를 사용하여 마운트 경로 내에 키와 값을 마운트합니다.mount-as: env는 모든Dev Workspace컨테이너에서 키와 값을 환경 변수로 마운트합니다.
예 6.1. 시크릿을 파일로 마운트
작업 영역을 시작하면 Dev Workspace 컨테이너에서 /home/user/.m2/settings.xml 파일을 사용할 수 있습니다.
Maven을 사용하면 settings.xml 파일의 사용자 지정 경로를 설정할 수 있습니다. 예를 들면 다음과 같습니다.
mvn --settings /home/user/.m2/settings.xml clean install
$ mvn --settings /home/user/.m2/settings.xml clean install
6.1.1. 이미지 가져오기 보안 생성 링크 복사링크가 클립보드에 복사되었습니다!
조직의 OpenShift Dev Spaces 인스턴스의 OpenShift 클러스터에 있는 Dev Workspace Pod가 인증이 필요한 컨테이너 레지스트리에 액세스할 수 있도록 하려면 이미지 가져오기 보안을 생성합니다.
oc 또는 .dockercfg 파일 또는 config.json 파일을 사용하여 이미지 가져오기 보안을 생성할 수 있습니다.
6.1.1.1. oc를 사용하여 이미지 가져오기 보안 생성 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
-
대상 OpenShift 클러스터에 대한 관리 권한이 있는 활성
oc세션. CLI 시작하기를 참조하십시오.
프로세스
사용자 프로젝트에서 개인 컨테이너 레지스트리 세부 정보 및 인증 정보를 사용하여 이미지 가져오기 보안을 생성합니다.
oc create secret docker-registry <Secret_name> \ --docker-server=<registry_server> \ --docker-username=<username> \ --docker-password=<password> \ --docker-email=<email_address>$ oc create secret docker-registry <Secret_name> \ --docker-server=<registry_server> \ --docker-username=<username> \ --docker-password=<password> \ --docker-email=<email_address>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이미지 가져오기 보안에 다음 라벨을 추가합니다.
oc label secret <Secret_name> controller.devfile.io/devworkspace_pullsecret=true controller.devfile.io/watch-secret=true
$ oc label secret <Secret_name> controller.devfile.io/devworkspace_pullsecret=true controller.devfile.io/watch-secret=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.1.2. .dockercfg 파일에서 이미지 가져오기 보안 생성 링크 복사링크가 클립보드에 복사되었습니다!
프라이빗 컨테이너 레지스트리의 인증 정보를 .dockercfg 파일에 이미 저장한 경우 해당 파일을 사용하여 이미지 가져오기 보안을 생성할 수 있습니다.
사전 요구 사항
프로세스
.dockercfg파일을 Base64로 인코딩합니다.cat .dockercfg | base64 | tr -d '\n'
$ cat .dockercfg | base64 | tr -d '\n'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 프로젝트에 새 OpenShift 보안을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 보안을 적용합니다.
oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.1.3. config.json 파일에서 이미지 가져오기 보안 생성 링크 복사링크가 클립보드에 복사되었습니다!
개인 컨테이너 레지스트리에 대한 인증 정보를 $HOME/.docker/config.json 파일에 이미 저장한 경우 해당 파일을 사용하여 이미지 가져오기 보안을 생성할 수 있습니다.
사전 요구 사항
프로세스
$HOME/.docker/config.json파일을 Base64로 인코딩합니다.cat config.json | base64 | tr -d '\n'
$ cat config.json | base64 | tr -d '\n'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 프로젝트에 새 OpenShift 보안을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 보안을 적용합니다.
oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.2. Git-provider 액세스 토큰 사용 링크 복사링크가 클립보드에 복사되었습니다!
GitHub, GitLab, Bitbucket 또는 Microsoft Azure Repos에 대한 OAuth는 조직의 OpenShift Dev Spaces 인스턴스 관리자가 구성해야 합니다. 관리자가 OpenShift Dev Spaces 사용자에 대해 구성할 수 없는 경우 개인 액세스 토큰을 사용하는 해결 방법이 있습니다. OpenShift Dev Spaces 대시보드의 사용자 환경 설정 페이지에서 개인 액세스 토큰을 구성할 수 있습니다. https:// <openshift_dev_spaces_fqdn> /dashboard/#/user-preferences?tab=personal-access-tokens, 또는 네임스페이스의 Kubernetes 시크릿으로 수동으로 적용할 수 있습니다.
액세스 토큰을 Secret으로 마운트하면 OpenShift Dev Spaces Server가 리포지토리의 /.che 및 /.vscode 폴더에 대한 액세스를 포함하여 작업 공간 생성 중에 복제된 원격 리포지토리에 액세스할 수 있습니다.
조직의 OpenShift Dev Spaces 인스턴스의 OpenShift 클러스터의 사용자 프로젝트에 보안을 적용합니다.
시크릿을 적용한 후 GitHub, GitLab, Bitbucket Server 또는 Microsoft Azure Repos에서 호스팅되는 개인 Git 리포지토리 복제를 사용하여 작업 영역을 생성할 수 있습니다.
Git 공급자당 여러 access-token 시크릿을 생성하고 적용할 수 있습니다. 사용자 프로젝트의 각 시크릿을 적용해야 합니다.
사전 요구 사항
클러스터에 로그인했습니다.
작은 정보OpenShift에서
oc명령줄 툴을 사용하여 클러스터에 로그인할 수 있습니다.$ oc login https:// <openshift_dev_spaces_fqdn > --username= <my_user>
프로세스
Git 공급자의 웹 사이트에서 액세스 토큰을 생성합니다.
중요개인 액세스 토큰은 민감한 정보이며 기밀로 유지되어야 합니다. 암호처럼 취급합니다. 인증에 문제가 있는 경우 올바른 토큰을 사용하고 있으며 리포지토리 복제에 적절한 권한이 있는지 확인합니다.
- 컴퓨터에서 로컬로 터미널을 엽니다.
-
개인 액세스 토큰을 사용하여 리포지토리를 복제하려면
git명령을 사용합니다.git명령의 형식은 Git 공급자에 따라 다릅니다. 예를 들어 다음 명령을 사용하여 GitHub 개인 액세스 토큰 확인을 수행할 수 있습니다.
git clone https://<PAT>@github.com/username/repo.git
git clone https://<PAT>@github.com/username/repo.gitCopy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;PAT>를 개인 액세스 토큰으로 바꾸고username/repo를 적절한 리포지토리 경로로 바꿉니다. 토큰이 유효하고 필요한 권한이 있는 경우 복제 프로세스에 성공해야 합니다. 그렇지 않으면 잘못된 개인 액세스 토큰, 사용 권한이 부족하거나 기타 문제가 있음을 나타냅니다.중요GitHub Enterprise Cloud의 경우 조직 내에서 토큰을 사용할 수 있는 권한이 있는지 확인합니다.
-
웹 브라우저에서
https:// <openshift_dev_spaces_fqdn> /api/user/id로 이동하여 OpenShift Dev Spaces 사용자 ID를 가져옵니다. 새 OpenShift 시크릿을 준비합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
https:// <openshift_dev_spaces_fqdn> /api/kubernetes/namespace를 방문하여 OpenShift Dev Spaces 사용자 네임스페이스를이름으로가져옵니다. 클러스터의 OpenShift Dev Spaces 사용자 네임스페이스로 전환합니다.
작은 정보On OpenShift:
oc명령줄 툴에서 현재 클러스터에 있는 네임스페이스를 반환할 수 있습니다. 현재 네임스페이스를 확인하는 데 사용할 수 있습니다.$ oc project필요한 경우 명령줄에서 OpenShift Dev Spaces 사용자 네임스페이스로 전환할 수 있습니다.
$ oc project < ;your_user_namespace>
시크릿을 적용합니다.
작은 정보OpenShift에서는
oc명령줄 툴을 사용할 수 있습니다.oc apply -f - <<EOF <Secret_prepared_in_step_5> EOF
$ oc apply -f - <<EOF <Secret_prepared_in_step_5> EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
- Git 공급자가 호스팅하는 원격 Git 리포지토리의 URL을 사용하여 새 작업 공간을 시작합니다.
- 일부 변경 사항을 수행하고 작업 영역에서 원격 Git 리포지토리로 내보냅니다.
6.2. 마운트 ConfigMap 링크 복사링크가 클립보드에 복사되었습니다!
기밀이 아닌 구성 데이터를 작업 공간에 마운트하려면 Kubernetes ConfigMap을 사용합니다.
Kubernetes ConfigMaps를 사용하면 애플리케이션의 구성 값과 같은 중요하지 않은 데이터를 마운트할 수 있습니다.
Kubernetes ConfigMap을 조직의 OpenShift Dev Spaces 인스턴스의 OpenShift 클러스터에 있는 Dev Workspace 컨테이너에 마운트합니다.
사전 요구 사항
-
대상 OpenShift 클러스터에 대한 관리 권한이 있는 활성
oc세션. CLI 시작하기를 참조하십시오. -
사용자 프로젝트에서 새 ConfigMap을 생성하거나 모든
Dev Workspace컨테이너에 마운트할 기존 ConfigMap을 확인했습니다.
프로세스
ConfigMap을 마운트하는 데 필요한 레이블을 ConfigMap에 추가합니다.
oc label configmap <ConfigMap_name> \ controller.devfile.io/mount-to-devworkspace=true \ controller.devfile.io/watch-configmap=true$ oc label configmap <ConfigMap_name> \ controller.devfile.io/mount-to-devworkspace=true \ controller.devfile.io/watch-configmap=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 주석을 사용하여 ConfigMap이 마운트되는 방법을 구성합니다.
Expand 표 6.2. 선택적 주석 주석 설명 controller.devfile.io/mount-path:마운트 경로를 지정합니다.
기본값은
/etc/config/ <ConfigMap_name>입니다.controller.devfile.io/mount-as:리소스를 마운트하는 방법(
file,subpath또는env)을 지정합니다.기본값은
file입니다.mount-as:file은 키와 값을 마운트 경로 내에 파일로 마운트합니다.mount-as:subpath는 subpath 볼륨 마운트를 사용하여 마운트 경로 내에 키와 값을 마운트합니다.mount-as:env는 모든Dev Workspace컨테이너에서 키와 값을 환경 변수로 마운트합니다.
예 6.2. ConfigMap을 환경 변수로 마운트
작업 영역을 시작하면 Dev Workspace 컨테이너에서 < env_var_1 > 및 < env_var_2 > 환경 변수를 사용할 수 있습니다.
6.2.1. Git 구성 마운트 링크 복사링크가 클립보드에 복사되었습니다!
user.name 및 user.email 필드는 Git-provider 액세스 토큰 또는 OAuth를 통해 생성된 토큰에 의해 OpenShift Dev Spaces에 연결된 git 공급자의 gitconfig 콘텐츠로 자동으로 설정됩니다. 사용자 이름 및 이메일이 공급자의 사용자 프로필 페이지에 설정되어 있는 경우입니다.
아래 지침에 따라 작업 공간에 Git 구성 파일을 마운트합니다.
사전 요구 사항
- 클러스터에 로그인했습니다.
프로세스
새 OpenShift ConfigMap을 준비합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ConfigMap을 적용합니다.
oc apply -f - <<EOF <ConfigMap_prepared_in_step_1> EOF
$ oc apply -f - <<EOF <ConfigMap_prepared_in_step_1> EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
- Git 공급자가 호스팅하는 원격 Git 리포지토리의 URL을 사용하여 새 작업 공간을 시작합니다.
-
작업 공간이 시작되면
툴컨테이너에서 새 터미널을 열고git config --get-regexp user.*를 실행합니다. Git 사용자 이름과 이메일이 출력에 표시되어야 합니다.
6.3. 제한된 환경에서 아티팩트 리포지토리 활성화 링크 복사링크가 클립보드에 복사되었습니다!
기술 스택을 구성하면 자체 서명된 인증서를 사용하여 사내 리포지토리의 아티팩트로 작업할 수 있습니다.
6.3.1. Maven 링크 복사링크가 클립보드에 복사되었습니다!
제한된 환경에서 실행되는 Maven 작업 영역에서 Maven 아티팩트 리포지토리를 활성화할 수 있습니다.
사전 요구 사항
- Maven 작업 영역을 실행하고 있지 않습니다.
-
<
username> -devspaces인 사용자 네임스페이스를 알고 있습니다. 여기서 <username>은 OpenShift Dev Spaces 사용자 이름입니다.
프로세스
<
;username> -devspaces네임스페이스에서 TLS 인증서에 대한 보안을 적용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 비활성화된 줄 래핑을 사용한 Base64 인코딩.
<
;username> -devspaces네임스페이스에서 ConfigMap을 적용하여settings.xml파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
선택 사항: JBoss EAP 기반 devfile을 사용하는 경우 <
username> -devspaces 네임스페이스에 두 번째ConfigMap을 적용하고 동일한 콘텐츠, 다른 이름 및settings-xml/home/jboss/.m2마운트 경로를 적용합니다. <
;username> -devspaces네임스페이스에서 TrustStore 초기화 스크립트에 대한 ConfigMap을 적용합니다.Java 8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Java 11
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Maven 작업 공간을 시작합니다.
-
tools컨테이너에서 새 터미널을 엽니다. -
~/init-truststore.sh를 실행합니다.
6.3.2. gradle 링크 복사링크가 클립보드에 복사되었습니다!
제한된 환경에서 실행되는 Gradle 작업 영역에서 Gradle 아티팩트 리포지토리를 활성화할 수 있습니다.
사전 요구 사항
- Gradle 작업 영역을 실행하지 않습니다.
프로세스
TLS 인증서의 보안을 적용합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 비활성화된 줄 래핑을 사용한 Base64 인코딩.
TrustStore 초기화 스크립트의 ConfigMap을 적용합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Gradle init 스크립트의 ConfigMap을 적용합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Gradle 작업 영역을 시작합니다.
-
tools컨테이너에서 새 터미널을 엽니다. -
~/init-truststore.sh를 실행합니다.
6.3.3. npm 링크 복사링크가 클립보드에 복사되었습니다!
제한된 환경에서 실행되는 npm 작업 영역에서 npm 아티팩트 리포지토리를 활성화할 수 있습니다.
사전 요구 사항
- npm 작업 영역을 실행하지 않습니다.
환경 변수를 설정하는 ConfigMap을 적용하면 작업 공간 부팅 루프가 발생할 수 있습니다.
이 동작이 발생하면 ConfigMap 을 제거하고 devfile을 직접 편집합니다.
프로세스
TLS 인증서의 보안을 적용합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 비활성화된 줄 래핑을 사용한 Base64 인코딩.
툴컨테이너에서 다음 환경 변수를 설정하려면 ConfigMap을 적용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.3.1. 자체 서명된 인증서 검증 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
아래 명령을 실행하여 자체 서명된 인증서의 검증을 바이패스하여 SSL/TLS를 비활성화합니다. 이는 잠재적인 보안 위험입니다. 더 나은 솔루션을 위해 NODE_EXTRA_CA_CERTS 를 사용하여 신뢰하는 자체 서명된 인증서를 구성합니다.
프로세스
터미널에서 다음 명령을 실행합니다.
npm config set strict-ssl false
npm config set strict-ssl falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.3.2. 인증서를 사용하도록 NODE_EXTRA_CA_CERTS 구성 링크 복사링크가 클립보드에 복사되었습니다!
아래 명령을 사용하여 SSL/TLS 인증서가 있는 위치를 가리키도록 NODE_EXTRA_CA_CERTS를 설정합니다.
프로세스
터미널에서 다음 명령을 실행합니다.
`export NODE_EXTRA_CA_CERTS=/public-certs/nexus.cer` `npm install`
`export NODE_EXTRA_CA_CERTS=/public-certs/nexus.cer`1 `npm install`Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
/public-certs/ Cryostat.cer는 Nexus 아티팩트의 자체 서명된 SSL/TLS 인증서의 경로입니다.
6.3.4. Python 링크 복사링크가 클립보드에 복사되었습니다!
제한된 환경에서 실행되는 Python 작업 영역에서 Python 아티팩트 리포지토리를 활성화할 수 있습니다.
사전 요구 사항
- Python 작업 영역을 실행하지 않습니다.
환경 변수를 설정하는 ConfigMap을 적용하면 작업 공간 부팅 루프가 발생할 수 있습니다.
이 동작이 발생하면 ConfigMap 을 제거하고 devfile을 직접 편집합니다.
프로세스
TLS 인증서의 보안을 적용합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 비활성화된 줄 래핑을 사용한 Base64 인코딩.
툴컨테이너에서 다음 환경 변수를 설정하려면 ConfigMap을 적용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.5. Go 링크 복사링크가 클립보드에 복사되었습니다!
제한된 환경에서 실행되는 Go 작업 영역에서 Go 아티팩트 리포지토리를 활성화할 수 있습니다.
사전 요구 사항
- Go 작업 영역을 실행하지 않습니다.
환경 변수를 설정하는 ConfigMap을 적용하면 작업 공간 부팅 루프가 발생할 수 있습니다.
이 동작이 발생하면 ConfigMap 을 제거하고 devfile을 직접 편집합니다.
프로세스
TLS 인증서의 보안을 적용합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 비활성화된 줄 래핑을 사용한 Base64 인코딩.
툴컨테이너에서 다음 환경 변수를 설정하려면 ConfigMap을 적용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.6. NuGet 링크 복사링크가 클립보드에 복사되었습니다!
제한된 환경에서 실행되는 Cryostat 작업 영역에서 Cryostat 아티팩트 리포지토리를 활성화할 수 있습니다.
사전 요구 사항
- Cryostat 작업 영역을 실행 중이 아닙니다.
환경 변수를 설정하는 ConfigMap을 적용하면 작업 공간 부팅 루프가 발생할 수 있습니다.
이 동작이 발생하면 ConfigMap 을 제거하고 devfile을 직접 편집합니다.
프로세스
TLS 인증서의 보안을 적용합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 비활성화된 줄 래핑을 사용한 Base64 인코딩.
ConfigMap을 적용하여
툴컨테이너에서 TLS 인증서 파일 경로에 대한 환경 변수를 설정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow ConfigMap을 적용하여
nuget.config파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7장. 작업 공간에 영구 스토리지 요청 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dev Spaces 작업 공간 및 작업 공간 데이터는 임시이며 작업 공간이 중지되면 손실됩니다.
작업 공간이 중지되는 동안 영구 스토리지에 작업 공간 상태를 유지하려면 조직의 OpenShift Dev Spaces 인스턴스의 OpenShift 클러스터에서 Dev Workspace 컨테이너에 대한 Kubernetes PersistentVolume(PV)을 요청합니다.
devfile 또는 Kubernetes PersistentVolumeClaim(PVC)을 사용하여 PV를 요청할 수 있습니다.
PV의 예로는 임시이 아닌 작업 공간에 대해 기본적으로 마운트된 작업 공간의 /projects/ 디렉터리가 있습니다.
영구 볼륨은 비용이 많이 듭니다. 영구 볼륨을 연결하면 작업 공간 시작 속도가 느려집니다.
ReadWriteOnce PV 를 사용하여 동시에 실행 중인 다른 작업 공간을 시작하면 실패할 수 있습니다.
7.1. devfile에서 영구 스토리지 요청 링크 복사링크가 클립보드에 복사되었습니다!
작업 공간에 자체 영구 스토리지가 필요한 경우 devfile에서 PersistentVolume(PV)을 요청하고 OpenShift Dev Spaces는 필요한 PersistentVolumeClaims를 자동으로 관리합니다.
사전 요구 사항
- 작업 공간을 시작하지 않았습니다.
프로세스
devfile에
볼륨구성 요소를 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow devfile에서 관련
컨테이너에대한volumeMount를 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
예 7.1. 컨테이너에 작업 공간 PV를 프로비저닝하는 devfile
다음 devfile으로 작업 영역을 시작하면 캐시 PV가 ./
cache 컨테이너 경로의 golang 컨테이너에 프로비저닝됩니다.
7.2. PVC에서 영구 스토리지 요청 링크 복사링크가 클립보드에 복사되었습니다!
다음과 같은 경우 PVC(PersistentVolumeClaim)를 적용하여 작업 공간에 PersistentVolume(PV)을 요청할 수 있습니다.
- 모든 프로젝트에 PV가 필요한 것은 아닙니다.
- PV 라이프사이클은 단일 작업 공간의 라이프사이클을 초과합니다.
- PV에 포함된 데이터는 작업 공간 간에 공유됩니다.
작업 공간이 임시이고 devfile에 controller.devfile.io/storage-type: ephemeral 속성이 포함된 경우에도 Dev Workspace 컨테이너에 PVC를 적용할 수 있습니다.
사전 요구 사항
- 작업 공간을 시작하지 않았습니다.
-
대상 OpenShift 클러스터에 대한 관리 권한이 있는 활성
oc세션. CLI 시작하기를 참조하십시오. -
모든
Dev Workspace컨테이너에 마운트할 사용자 프로젝트에 PVC가 생성됩니다.
프로세스
PVC에
controller.devfile.io/mount-to-devworkspace: true라벨을 추가합니다.oc label persistentvolumeclaim <PVC_name> \ controller.devfile.io/mount-to-devworkspace=true
$ oc label persistentvolumeclaim <PVC_name> \ controller.devfile.io/mount-to-devworkspace=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 주석을 사용하여 PVC가 마운트되는 방법을 구성합니다.
Expand 표 7.1. 선택적 주석 주석 설명 controller.devfile.io/mount-path:PVC의 마운트 경로입니다.
기본값은
/tmp/ <PVC_name>입니다.controller.devfile.io/read-only:'true'또는'false'로 설정하여 PVC를 읽기 전용으로 마운트할지 여부를 지정합니다.기본값은
'false'로, PVC가 읽기/쓰기로 마운트됩니다.
예 7.2. 읽기 전용 PVC 마운트
8장. OpenShift와 통합 링크 복사링크가 클립보드에 복사되었습니다!
8.1. OpenShift API를 사용하여 작업 공간 관리 링크 복사링크가 클립보드에 복사되었습니다!
조직의 OpenShift 클러스터에서 OpenShift Dev Spaces 작업 공간은 동일한 이름의 DevWorkspace 사용자 정의 리소스로 표시됩니다. 결과적으로 OpenShift Dev Spaces 대시보드에 my-workspace 라는 작업 공간이 있는 경우 클러스터의 사용자 프로젝트에 my-workspace 라는 해당 DevWorkspace 사용자 지정 리소스가 있습니다.
클러스터의 각 DevWorkspace 사용자 지정 리소스는 OpenShift Dev Spaces 작업 공간을 나타내기 때문에 명령줄 oc 와 같은 클라이언트와 OpenShift API를 사용하여 OpenShift Dev Spaces 작업 공간을 관리할 수 있습니다.
각 DevWorkspace 사용자 정의 리소스에는 작업 공간에 복제된 Git 리포지토리의 devfile에서 파생된 세부 정보가 포함되어 있습니다. 예를 들어 devfile은 devfile 명령 및 작업 공간 컨테이너 구성을 제공할 수 있습니다.
8.1.1. 모든 작업 공간 나열 링크 복사링크가 클립보드에 복사되었습니다!
사용자는 명령줄을 사용하여 작업 영역을 나열할 수 있습니다.
사전 요구 사항
-
클러스터의 프로젝트에서
DevWorkspace리소스를가져올 수있는 권한이 있는 활성oc세션입니다. CLI 시작하기를 참조하십시오. 클러스터에서 관련 OpenShift Dev Spaces 사용자 네임스페이스를 알고 있습니다.
작은 정보https:// <openshift_dev_spaces_fqdn> /api/kubernetes/namespace를방문하여 OpenShift Dev Spaces 사용자 네임스페이스를이름으로가져올 수 있습니다.클러스터의 OpenShift Dev Spaces 사용자 네임스페이스에 있습니다.
작은 정보OpenShift에서 명령줄
oc툴을 사용하여 현재 네임스페이스를 표시하거나 네임스페이스로 전환할 수 있습니다.
프로세스
작업 영역을 나열하려면 명령줄에 다음을 입력합니다.
oc get devworkspaces
$ oc get devworkspacesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예 8.1. 출력 결과
NAMESPACE NAME DEVWORKSPACE ID PHASE INFO user1-dev spring-petclinic workspace6d99e9ffb9784491 Running https://url-to-workspace.com user1-dev golang-example workspacedf64e4a492cd4701 Stopped Stopped user1-dev python-hello-world workspace69c26884bbc141f2 Failed Container tooling has state CrashLoopBackOff
NAMESPACE NAME DEVWORKSPACE ID PHASE INFO user1-dev spring-petclinic workspace6d99e9ffb9784491 Running https://url-to-workspace.com user1-dev golang-example workspacedf64e4a492cd4701 Stopped Stopped user1-dev python-hello-world workspace69c26884bbc141f2 Failed Container tooling has state CrashLoopBackOffCopy to Clipboard Copied! Toggle word wrap Toggle overflow
이 명령에 --watch 플래그를 추가하여 PHASE 변경 사항을 라이브로 볼 수 있습니다.
클러스터에 대한 관리자 권한이 있는 사용자는 --all-namespaces 플래그를 포함하여 모든 OpenShift Dev Spaces 사용자의 모든 작업 공간을 나열할 수 있습니다.
8.1.2. 작업 공간 생성 링크 복사링크가 클립보드에 복사되었습니다!
사용 사례에서 OpenShift Dev Spaces 대시보드 사용을 허용하지 않는 경우 클러스터에 사용자 정의 리소스를 적용하여 OpenShift API로 작업 공간을 생성할 수 있습니다.
OpenShift Dev Spaces 대시보드를 통해 작업 공간을 생성하면 명령줄 사용과 비교하여 사용자 환경 및 구성 이점이 향상됩니다.
- 사용자는 자동으로 클러스터에 로그인됩니다.
- OpenShift 클라이언트가 자동으로 작동합니다.
-
OpenShift Dev Spaces 및 해당 구성 요소는 대상 Git 리포지토리의 devfile을 클러스터의
DevWorkspace및DevWorkspaceTemplate사용자 정의 리소스로 자동으로 변환합니다. -
작업 공간에 대한 액세스는 기본적으로 작업 공간의
DevWorkspace에서routingClass: che를 사용하여 보호됩니다. -
DevWorkspaceOperatorConfig구성에 대한 인식은 OpenShift Dev Spaces에서 관리합니다. CheCluster사용자 정의 리소스에 지정된spec.devEnvironments의 구성 인식은 다음을 포함합니다.-
영구 스토리지 전략은
devEnvironments.storage를 사용하여 지정합니다. -
기본 IDE는
devEnvironments.defaultEditor로 지정됩니다. -
기본 플러그인은
devEnvironments.defaultPlugins로 지정됩니다. -
컨테이너 빌드 구성은
devEnvironments.containerBuildConfiguration을 사용하여 지정됩니다.
-
영구 스토리지 전략은
사전 요구 사항
-
클러스터의 프로젝트에서
DevWorkspace리소스를 생성할 수 있는 권한이 있는 활성oc세션입니다. CLI 시작하기를 참조하십시오. 클러스터에서 관련 OpenShift Dev Spaces 사용자 네임스페이스를 알고 있습니다.
작은 정보https:// <openshift_dev_spaces_fqdn> /api/kubernetes/namespace를방문하여 OpenShift Dev Spaces 사용자 네임스페이스를이름으로가져올 수 있습니다.클러스터의 OpenShift Dev Spaces 사용자 네임스페이스에 있습니다.
작은 정보OpenShift에서 명령줄
oc툴을 사용하여 현재 네임스페이스를 표시하거나 네임스페이스로 전환할 수 있습니다.참고다른 사용자를 위한 작업 공간을 생성하려는 OpenShift Dev Spaces 관리자는 OpenShift Dev Spaces 또는 관리자가 프로비저닝한 사용자 네임스페이스에
DevWorkspace사용자 정의 리소스를 생성해야 합니다. https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.18/html-single/administration_guide/index#administration-guide:configuring-namespace-provisioning 을 참조하십시오.
프로세스
DevWorkspace사용자 정의 리소스를 준비하려면 대상 Git 리포지토리의 devfile 내용을 복사합니다.예 8.2.
schemaVersion을 사용하여 devfile 콘텐츠 복사: 2.2.0components: - name: tooling-container container: image: quay.io/devfile/universal-developer-image:ubi8-latestcomponents: - name: tooling-container container: image: quay.io/devfile/universal-developer-image:ubi8-latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보자세한 내용은 devfile v2 문서를 참조하십시오.
이전 단계의 devfile 콘텐츠를
spec.template필드 아래에 붙여넣는DevWorkspace사용자 정의 리소스를 생성합니다.예 8.3.
DevWorkspace사용자 정의 리소스Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
DevWorkspace사용자 정의 리소스를 클러스터에 적용합니다.
검증
DevWorkspace의 PHASE 상태를 확인하여 작업 공간이 시작되었는지 확인합니다.oc get devworkspaces -n <user_project> --watch
$ oc get devworkspaces -n <user_project> --watchCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예 8.4. 출력 결과
NAMESPACE NAME DEVWORKSPACE ID PHASE INFO user1-dev my-devworkspace workspacedf64e4a492cd4701 Starting Waiting for workspace deployment
NAMESPACE NAME DEVWORKSPACE ID PHASE INFO user1-dev my-devworkspace workspacedf64e4a492cd4701 Starting Waiting for workspace deploymentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 작업 공간이 성공적으로 시작되면
oc get devworkspaces명령의 출력에서 PHASE 상태가 Running 으로 변경됩니다.예 8.5. 출력 결과
NAMESPACE NAME DEVWORKSPACE ID PHASE INFO user1-dev my-devworkspace workspacedf64e4a492cd4701 Running https://url-to-workspace.com
NAMESPACE NAME DEVWORKSPACE ID PHASE INFO user1-dev my-devworkspace workspacedf64e4a492cd4701 Running https://url-to-workspace.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 그런 다음 다음 옵션 중 하나를 사용하여 작업 영역을 열 수 있습니다.
-
oc get devworkspaces명령 출력의 INFO 섹션에 제공된 URL을 방문합니다. - OpenShift Dev Spaces 대시보드에서 작업 공간을 엽니다.
-
8.1.3. 작업 공간 중지 링크 복사링크가 클립보드에 복사되었습니다!
Devworkspace 사용자 정의 리소스의 spec.started 필드를 false 로 설정하여 작업 공간을 중지할 수 있습니다.
사전 요구 사항
-
클러스터의 활성
oc세션입니다. CLI 시작하기를 참조하십시오. 작업 공간 이름을 알고 있습니다.
작은 정보$ oc get devworkspaces출력에서 관련 작업 공간 이름을 찾을 수 있습니다.클러스터에서 관련 OpenShift Dev Spaces 사용자 네임스페이스를 알고 있습니다.
작은 정보https:// <openshift_dev_spaces_fqdn> /api/kubernetes/namespace를방문하여 OpenShift Dev Spaces 사용자 네임스페이스를이름으로가져올 수 있습니다.클러스터의 OpenShift Dev Spaces 사용자 네임스페이스에 있습니다.
작은 정보OpenShift에서 명령줄
oc툴을 사용하여 현재 네임스페이스를 표시하거나 네임스페이스로 전환할 수 있습니다.
프로세스
다음 명령을 실행하여 작업 공간을 중지합니다.
oc patch devworkspace <workspace_name> \ -p '{"spec":{"started":false}}' \ --type=merge -n <user_namespace> && \ oc wait --for=jsonpath='{.status.phase}'=Stopped \ dw/<workspace_name> -n <user_namespace>$ oc patch devworkspace <workspace_name> \ -p '{"spec":{"started":false}}' \ --type=merge -n <user_namespace> && \ oc wait --for=jsonpath='{.status.phase}'=Stopped \ dw/<workspace_name> -n <user_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.1.4. 중지된 작업 공간 시작 링크 복사링크가 클립보드에 복사되었습니다!
Devworkspace 사용자 정의 리소스에서 spec.started 필드를 true 로 설정하여 중지된 작업 공간을 시작할 수 있습니다.
사전 요구 사항
-
클러스터의 활성
oc세션입니다. CLI 시작하기를 참조하십시오. 작업 공간 이름을 알고 있습니다.
작은 정보$ oc get devworkspaces출력에서 관련 작업 공간 이름을 찾을 수 있습니다.클러스터에서 관련 OpenShift Dev Spaces 사용자 네임스페이스를 알고 있습니다.
작은 정보https:// <openshift_dev_spaces_fqdn> /api/kubernetes/namespace를방문하여 OpenShift Dev Spaces 사용자 네임스페이스를이름으로가져올 수 있습니다.클러스터의 OpenShift Dev Spaces 사용자 네임스페이스에 있습니다.
작은 정보OpenShift에서 명령줄
oc툴을 사용하여 현재 네임스페이스를 표시하거나 네임스페이스로 전환할 수 있습니다.
프로세스
다음 명령을 실행하여 중지된 작업 영역을 시작합니다.
oc patch devworkspace <workspace_name> \ -p '{"spec":{"started":true}}' \ --type=merge -n <user_namespace> && \ oc wait --for=jsonpath='{.status.phase}'=Running \ dw/<workspace_name> -n <user_namespace>$ oc patch devworkspace <workspace_name> \ -p '{"spec":{"started":true}}' \ --type=merge -n <user_namespace> && \ oc wait --for=jsonpath='{.status.phase}'=Running \ dw/<workspace_name> -n <user_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.1.5. 작업 공간 제거 링크 복사링크가 클립보드에 복사되었습니다!
DevWorkspace 사용자 정의 리소스를 간단히 삭제하여 작업 공간을 제거할 수 있습니다.
DevWorkspace 사용자 정의 리소스를 삭제하면 OpenShift Dev Spaces에서 생성한 경우 다른 작업 공간 리소스도 삭제됩니다(예: 참조된 DevWorkspaceTemplate 및 per-workspace PersistentVolumeClaims ).
가능한 경우 OpenShift Dev Spaces 대시보드를 사용하여 작업 공간을 제거합니다.
사전 요구 사항
-
클러스터의 활성
oc세션입니다. CLI 시작하기를 참조하십시오. 작업 공간 이름을 알고 있습니다.
작은 정보$ oc get devworkspaces출력에서 관련 작업 공간 이름을 찾을 수 있습니다.클러스터에서 관련 OpenShift Dev Spaces 사용자 네임스페이스를 알고 있습니다.
작은 정보https:// <openshift_dev_spaces_fqdn> /api/kubernetes/namespace를방문하여 OpenShift Dev Spaces 사용자 네임스페이스를이름으로가져올 수 있습니다.클러스터의 OpenShift Dev Spaces 사용자 네임스페이스에 있습니다.
작은 정보OpenShift에서 명령줄
oc툴을 사용하여 현재 네임스페이스를 표시하거나 네임스페이스로 전환할 수 있습니다.
프로세스
다음 명령을 실행하여 작업 공간을 제거합니다.
oc delete devworkspace <workspace_name> -n <user_namespace>
$ oc delete devworkspace <workspace_name> -n <user_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2. 자동 OpenShift 토큰 삽입 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 OpenShift 클러스터에 대해 OpenShift Dev Spaces CLI 명령을 실행할 수 있는 작업 공간 컨테이너에 자동으로 삽입되는 OpenShift 사용자 토큰을 사용하는 방법을 설명합니다.
프로세스
- OpenShift Dev Spaces 대시보드를 열고 작업 공간을 시작합니다.
- 작업 공간이 시작되면 OpenShift Dev Spaces CLI가 포함된 컨테이너에서 터미널을 엽니다.
OpenShift 클러스터에 대해 명령을 실행할 수 있는 OpenShift Dev Spaces CLI 명령을 실행합니다. CLI는 애플리케이션 배포, 클러스터 리소스 검사 및 관리, 로그 보기에 사용할 수 있습니다. OpenShift 사용자 토큰은 명령을 실행하는 동안 사용됩니다.
자동 토큰 삽입은 현재 OpenShift 인프라에서만 작동합니다.
9장. Dev Spaces 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 사용자가 충돌할 수 있는 가장 빈번한 문제에 대한 문제 해결 절차를 제공합니다.
추가 리소스
9.1. Dev Spaces 작업 공간 로그 보기 링크 복사링크가 클립보드에 복사되었습니다!
문제가 발생할 경우 OpenShift Dev Spaces 로그를 확인하여 백그라운드 프로세스를 더 잘 이해하고 디버깅할 수 있습니다.
- IDE 확장이 잘못되었거나 디버깅이 필요합니다.
- 로그는 편집기에서 로드한 플러그인을 나열합니다.
- 컨테이너가 메모리 부족
-
로그에
OOMKilled오류 메시지가 포함됩니다. 컨테이너에서 실행되는 프로세스는 컨테이너에서 사용할 수 있도록 구성된 것보다 더 많은 메모리를 요청하려고 했습니다. - 프로세스가 메모리 부족
-
로그에
OutOfMemoryException과 같은 오류 메시지가 포함되어 있습니다. 컨테이너 내부의 프로세스는 컨테이너 알림 없이 메모리 부족을 실행했습니다.
추가 리소스
9.1.1. CLI의 Workspace 로그 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift CLI를 사용하여 OpenShift Dev Spaces 작업 공간 로그를 확인할 수 있습니다.
사전 요구 사항
- OpenShift Dev Spaces 작업 공간 < ;workspace_name> 이 실행 중입니다.
- OpenShift CLI 세션은 이 작업 영역을 포함하는 OpenShift 프로젝트 < namespace_name >에 액세스할 수 있습니다.
프로세스
< namespace _name> 프로젝트의 < workspace_name > 작업 공간을 실행하는 Pod에서 로그를 가져옵니다.
oc logs --follow --namespace='<workspace_namespace>' \ --selector='controller.devfile.io/devworkspace_name=<workspace_name>'
$ oc logs --follow --namespace='<workspace_namespace>' \ --selector='controller.devfile.io/devworkspace_name=<workspace_name>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.1.2. OpenShift 콘솔의 Workspace 로그 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift 콘솔을 사용하여 OpenShift Dev Spaces 작업 공간 로그를 확인할 수 있습니다.
프로세스
- OpenShift Dev Spaces 대시보드에서 Workspace 로 이동합니다.
- 작업 공간 이름을 클릭하여 작업 공간 개요 페이지를 표시합니다. 이 페이지에는 OpenShift 프로젝트 이름 < project_name>이 표시됩니다.
- 오른쪽 상단에 있는 애플리케이션 메뉴를 클릭하고 OpenShift 콘솔 링크를 클릭합니다.
- 관리자 화면에서 OpenShift 콘솔에서 다음 단계를 실행합니다.
- 워크로드 > Pod 를 클릭하여 모든 활성 작업 공간 목록을 확인합니다.
- 프로젝트 드롭다운 메뉴에서 < project_name> 프로젝트를 선택하여 검색 범위를 좁힙니다.
- 작업 영역을 실행하는 실행 중인 Pod의 이름을 클릭합니다. 세부 정보 탭에는 추가 정보가 있는 모든 컨테이너 목록이 포함되어 있습니다.
- 로그 탭으로 이동합니다.
9.1.3. 편집기의 언어 서버 및 디버그 어댑터 로그 링크 복사링크가 클립보드에 복사되었습니다!
Microsoft Visual Studio Code - 작업 영역에서 실행되는 오픈 소스 편집기에서 설치된 언어 서버 및 디버그 어댑터 확장을 구성하여 로그를 볼 수 있습니다.
프로세스
-
확장 기능을 구성합니다. File > Preferences > Settings 을 클릭하고 Extensions 섹션을 확장하고, 확장을 검색하고,
trace.server또는 유사한 구성이 있는 경우verbose로 설정합니다. 추가 구성은 확장 설명서를 참조하십시오. - 보기 → 출력을 클릭하고 출력 보기 의 드롭다운 목록에서 언어 서버를 선택하여 언어 서버 로그를 확인합니다.
추가 리소스
9.2. 느린 작업 공간 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
작업 공간을 시작하는 데 시간이 오래 걸릴 수 있습니다. 튜닝을 사용하면 이 시작 시간을 줄일 수 있습니다. 옵션에 따라 관리자 또는 사용자는 튜닝을 수행할 수 있습니다.
이 섹션에는 작업 공간을 더 빨리 시작하거나 작업 공간 런타임 성능을 개선하기 위한 몇 가지 튜닝 옵션이 포함되어 있습니다.
9.2.1. 작업 공간 시작 시간 개선 링크 복사링크가 클립보드에 복사되었습니다!
- 이미지 가져오기를 사용하여 이미지 캐싱
역할: 관리자
작업 영역을 시작할 때 OpenShift는 레지스트리에서 이미지를 가져옵니다. 작업 공간에는 OpenShift가 포드의 이미지(컨테이너당 하나씩)를 가져오는 많은 컨테이너가 포함될 수 있습니다. 이미지 크기와 대역폭에 따라 시간이 오래 걸릴 수 있습니다.
이미지 Puller는 각 OpenShift 노드에서 이미지를 캐시할 수 있는 툴입니다. 따라서 이미지를 미리 가져오면 시작 시간이 단축될 수 있습니다. https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.18/html-single/administration_guide/index#administration-guide:caching-images-for-faster-workspace-start 을 참조하십시오.
- 더 나은 스토리지 유형 선택
역할: 관리자 및 사용자
모든 작업 공간에는 공유 볼륨이 연결되어 있습니다. 이 볼륨은 프로젝트 파일을 저장하므로 작업 영역을 다시 시작할 때 변경 사항을 계속 사용할 수 있습니다. 스토리지에 따라 연결 시간이 몇 분 정도 걸릴 수 있으며 I/O 속도가 느려질 수 있습니다.
- 오프라인 설치
역할: 관리자
OpenShift Dev Spaces의 구성 요소는 OCI 이미지입니다. 처음부터 모든 항목을 사용할 수 있어야 하므로 런타임 시 추가 다운로드를 줄이기 위해 Red Hat OpenShift Dev Spaces를 오프라인 모드로 설정합니다. https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.18/html-single/administration_guide/index#administration-guide:installing-che-in-a-restricted-environment 을 참조하십시오.
- 공용 끝점 수 감소
역할: 관리자
OpenShift는 각 끝점에 OpenShift Route 오브젝트를 생성하고 있습니다. 기본 구성에 따라 이 생성 속도가 느려질 수 있습니다.
이 문제를 방지하려면 노출을 줄입니다. 예를 들어 컨테이너 내부에서 수신 대기하는 새 포트를 자동으로 감지하고 로컬 IP 주소(
127.0.0.1)를 사용하여 프로세스의 트래픽을 리디렉션하기 위해 Microsoft Visual Code에는 세 가지 선택적 경로가 있습니다.끝점 수를 줄이고 모든 플러그인의 끝점을 확인하면 작업 공간 시작이 더 빨라질 수 있습니다.
9.2.2. 작업 공간 런타임 성능 개선 링크 복사링크가 클립보드에 복사되었습니다!
- 충분한 CPU 리소스 제공
플러그인은 CPU 리소스를 사용합니다. 예를 들어 플러그인이 Cryostat 기능을 제공하는 경우 CPU 리소스를 더 추가하면 성능이 향상될 수 있습니다.
devfile 정의
devfile.yaml의 CPU 설정이 올바른지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 충분한 메모리 제공
플러그인은 CPU 및 메모리 리소스를 사용합니다. 예를 들어 플러그인이 Cryostat 기능을 제공하는 경우 데이터를 수집하면 컨테이너에 할당된 모든 메모리를 사용할 수 있습니다.
컨테이너에 더 많은 메모리를 제공하면 성능이 향상될 수 있습니다. devfile 정의
devfile.yaml파일의 메모리 설정이 올바른지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3. 네트워크 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 네트워크 정책과 관련된 문제를 방지하거나 해결하는 방법을 설명합니다. OpenShift Dev Spaces에는 WebSocket 보안(WSS) 연결을 사용할 수 있어야 합니다. 보안 WebSocket 연결은 잘못된 프록시의 간섭 위험을 줄이기 때문에 기밀성과 신뢰성을 향상시킵니다.
사전 요구 사항
- 포트 443의 WebSocket 보안(WSS) 연결은 네트워크에서 사용할 수 있어야 합니다. 방화벽 및 프록시에는 추가 구성이 필요할 수 있습니다.
프로세스
- 브라우저가 WebSocket 프로토콜을 지원하는지 확인합니다. 웹 소켓 테스트 검색을 참조하십시오.
- 포트 443의 방화벽 설정: WebSocket Secure (WSS) 연결을 사용할 수 있어야 합니다.
- 프록시 서버 설정 확인: 프록시는 포트 443에서 WebSocket 보안(WSS) 연결을 전송 및 가로채기합니다.
9.4. 웹 뷰 로드 오류 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
Microsoft Visual Studio Code - 비공개 검색 창에서 오픈 소스 를 사용하는 경우 오류 메시지: 웹 뷰 로드 중 오류: 서비스 작업자를 등록할 수 없습니다.
이는 다음 브라우저에 영향을 미치는 알려진 문제입니다.
- Google Chrome in Incognito 모드
- Private Browsing 모드에서 Mozilla Firefox
| 브라우저 |
|---|
| 해결방법 |
| Google Chrome |
| 설정 → 개인 정보 보호 및 보안 → 쿠키 및 기타 사이트 데이터 → 모든 쿠키 허용 으로 이동합니다. |
| Mozilla Firefox |
| Private Browsing 모드에서는 웹 뷰가 지원되지 않습니다. 자세한 내용은 보고된 버그 를 참조하십시오. |