5.9. 스토리지 구성
OpenShift Dev Spaces는 NFS(Network File System) 프로토콜을 지원하지 않습니다.
5.9.1. 스토리지 클래스 구성 링크 복사링크가 클립보드에 복사되었습니다!
구성된 인프라 스토리지를 사용하도록 OpenShift Dev Spaces를 구성하려면 스토리지 클래스를 사용하여 OpenShift Dev Spaces를 설치합니다. 이는 기본이 아닌 프로비저너에서 제공하는 영구 볼륨을 바인딩하려는 경우 특히 유용합니다.
OpenShift Dev Spaces에는 데이터를 저장하기 위해 영구 볼륨이 필요한 하나의 구성 요소가 있습니다.
-
OpenShift Dev Spaces 작업 공간. OpenShift Dev Spaces 작업 공간은 볼륨을 사용하여 소스 코드를 저장합니다(예:
/projects
볼륨).
OpenShift Dev Spaces 작업 공간 소스 코드는 작업 공간이 임시가 아닌 경우에만 영구 볼륨에 저장됩니다.
영구 볼륨 클레임 팩트:
- OpenShift Dev Spaces는 인프라에서 영구 볼륨을 생성하지 않습니다.
- OpenShift Dev Spaces는 PVC(영구 볼륨 클레임)를 사용하여 영구 볼륨을 마운트합니다.
Dev Workspace Operator는 영구 볼륨 클레임을 생성합니다.
OpenShift Dev Spaces PVC의 스토리지 클래스 기능을 사용하도록 OpenShift Dev Spaces 구성에 스토리지 클래스 이름을 정의합니다.
프로세스
CheCluster 사용자 정의 리소스 정의를 사용하여 스토리지 클래스를 정의합니다.
스토리지 클래스 이름을 정의합니다.
CheCluster
사용자 정의 리소스를 구성하고 OpenShift Dev Spaces를 설치합니다. 5.1.1절. “dsc를 사용하여 설치 중에CheCluster
사용자 정의 리소스 구성”을 참조하십시오.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9.2. 스토리지 전략 구성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dev Spaces는 스토리지 전략을 선택하여 작업 공간에 영구 스토리지 또는 비영구 스토리지를 제공하도록 구성할 수 있습니다. 선택한 스토리지 전략은 기본적으로 새로 생성된 모든 작업 공간에 적용됩니다. 사용자는 devfile 의 작업 공간 또는 URL 매개변수를 통해 기본이 아닌 스토리지 전략을 선택할 수 있습니다.
사용 가능한 스토리지 전략:
-
사용자별: 사용자가
생성한 모든 작업 공간에 단일 PVC를 사용합니다. -
작업별
: 각 작업 공간에는 자체 PVC가 제공됩니다. -
ephemeral
: 비영구 스토리지; 작업 영역을 중지하면 로컬 변경 사항이 손실됩니다.
OpenShift Dev Spaces에 사용되는 기본 스토리지 전략은 사용자당
입니다.
프로세스
-
Che Cluster 사용자 정의 리소스의
pvcStrategy
필드를사용자당
,Workspace별
또는임시
로 설정합니다.
-
설치 시 이 필드를 설정할 수 있습니다. 5.1.1절. “dsc를 사용하여 설치 중에
CheCluster
사용자 정의 리소스 구성”을 참조하십시오. - 이 필드는 명령줄에서 업데이트할 수 있습니다. 5.1.2절. “CLI를 사용하여 CheCluster 사용자 정의 리소스 구성”을 참조하십시오.
spec: devEnvironments: storage: pvc: pvcStrategy: 'per-user'
spec:
devEnvironments:
storage:
pvc:
pvcStrategy: 'per-user'
- 1
- 사용 가능한 스토리지 전략은
사용자당
,작업당
및임시
입니다.
5.9.3. 스토리지 크기 구성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 또는
스토리지 전략을 사용하여 PVC(영구 볼륨 클레임) 크기를 구성할 수 있습니다. 작업
별CheCluster
사용자 정의 리소스에서 PVC 크기를 Kubernetes 리소스 수량 의 형식으로 지정해야 합니다. 사용 가능한 스토리지 전략에 대한 자세한 내용은 이 페이지를 참조하십시오.
기본 영구 볼륨 클레임 크기:
per-user: 10Gi
per-user: 10Gi
Copy to Clipboard Copied! Toggle word wrap Toggle overflow per-workspace: 5Gi
per-workspace: 5Gi
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
프로세스
-
Che Cluster 사용자 정의 리소스에서 원하는 스토리지 전략에 적절한
claimSize
필드를 설정합니다.
-
설치 시 이 필드를 설정할 수 있습니다. 5.1.1절. “dsc를 사용하여 설치 중에
CheCluster
사용자 정의 리소스 구성”을 참조하십시오. - 이 필드는 명령줄에서 업데이트할 수 있습니다. 5.1.2절. “CLI를 사용하여 CheCluster 사용자 정의 리소스 구성”을 참조하십시오.
OpenShift Dev Spaces에서 프로비저닝한 클러스터에서 PVC를 수동으로 수정하는 것은 공식적으로 지원되지 않으며 예기치 않은 결과가 발생할 수 있습니다.
작업 영역에서 사용 중인 PVC의 크기를 조정하려면 PVC 변경을 수행하려면 작업 공간을 다시 시작해야 합니다.
5.9.4. 영구 사용자 홈 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift Dev Spaces는 각 비임스페이스 작업 공간을 사용하여 작업 공간 재시작 시 /home/user
디렉토리를 유지할 수 있는 영구적인 홈 디렉터리 기능을 제공합니다. spec.devEnvironments.persistUserhome.enabled
를 true
로 설정하여 CheCluster에서 이 기능을 활성화할 수 있습니다.
새로 시작된 작업 공간의 경우 이 기능은 툴 컨테이너의 /home/user
경로에 마운트된 PVC를 생성합니다. 이 문서에서는 devfile의 첫 번째 컨테이너를 참조하는 데 "tools 컨테이너"가 사용됩니다. 이 컨테이너는 기본적으로 프로젝트 소스 코드가 포함된 컨테이너입니다.
PVC가 처음 마운트되면 영구 볼륨의 콘텐츠가 비어 있으므로 /home/user
디렉터리 콘텐츠로 채워야 합니다.
기본적으로 persistUserhome 기능은
이라는 새 작업 공간 Pod마다 init 컨테이너를 생성합니다. 이 init 컨테이너는 툴 컨테이너 이미지로 생성되며 init
-persistent-homestow
명령을 실행하여 영구 볼륨에 심볼릭 링크를 생성하여 /home/user
디렉터리를 채웁니다.
.viminfo
및 .bashrc
파일과 같이 /home/user
디렉터리에 심볼릭 링크할 수 없는 파일의 경우 stow
대신 cp
를 사용합니다.
stow
명령의 주요 기능은 다음을 실행하는 것입니다.
stow -t /home/user/ -d /home/tooling/ --no-folding
stow -t /home/user/ -d /home/tooling/ --no-folding
위의 명령은 /home/tooling
에 있는 파일 및 디렉토리에 대한 /home/user
에 대한 심볼릭 링크를 만듭니다. 이렇게 하면 영구 볼륨이 /home/tooling
의 콘텐츠에 대한 심볼릭 링크로 채워집니다. 결과적으로 persistUser
home 기능은 툴링 이미지에 /home/user/
콘텐츠가 /home/tooling
내에 있을 것으로 예상합니다.
예를 들어 툴 컨테이너 이미지에 .config 및
디렉터리에 파일이 포함된 경우 stow는 다음과 같은 방식으로 영구 볼륨에 심볼릭 링크를 생성합니다.
.config
-folder /another-file
과 같은 홈/tooling
그림 5.11. persistUserhome이 활성화된 툴
컨테이너
init 컨테이너는 stow
명령의 출력을 /home/user/.stow.log
에 쓰고 영구 볼륨이 작업 공간에 처음 마운트될 때만 stow
를 실행합니다.
stow
명령을 사용하여 영구 볼륨에서 /home/user
콘텐츠를 채우면 다음과 같은 두 가지 주요 이점이 있습니다.
-
심볼릭 링크를 만드는 것은 영구 볼륨에
/home/user
디렉터리 콘텐츠의 복사본을 생성하는 것보다 적은 스토리지를 사용하는 속도가 빠릅니다. 다르게 설정하기 위해 이 경우 영구 볼륨에는 실제 파일 자체가 아닌 심볼릭 링크가 포함되어 있습니다. -
툴 이미지가 최신 버전의 기존 바이너리, 구성 및 파일로 업데이트되면 기존 심볼릭 링크가 이미
/home/tooling
의 최신 버전에 연결되므로 init 컨테이너가 새 버전을 중단할 필요가 없습니다.
툴링 이미지가 추가 바이너리 또는 파일로 업데이트되면 stow
명령이 다시 실행되지 않기 때문에 /home/user
디렉터리에 심볼릭 링크되지 않습니다. 이 경우 사용자는 /home/user/.stow_completed
파일을 삭제하고 작업 공간을 다시 시작하여 stow
를 재실행해야 합니다.
persistUserhome
툴 이미지 요구 사항
persistUserhome
은 작업 공간에 사용되는 툴 이미지에 따라 다릅니다. 기본적으로 OpenShift Dev Spaces는 샘플 작업 공간에 UDI(Universal Developer Image)를 사용하며 이 이미지는 즉시 persistUser
home을 지원합니다.
사용자 지정 이미지를 사용하는 경우 persistUser
home 기능을 지원하기 위해 충족해야 하는 세 가지 요구 사항이 있습니다.
-
툴 이미지에
stow
버전 >= 2.4.0이 포함되어야 합니다. -
$HOME
환경 변수는/home/user
로 설정됩니다. -
툴 이미지에서
/home/user
콘텐츠를 포함하기 위한 디렉터리는/home/tooling
입니다.
요구 사항 3으로 인해 기본 UDI 이미지는 예를 들어 /home/user
콘텐츠를 /home/tooling
에 추가하고 실행합니다.
RUN stow -t /home/user/ -d /home/tooling/ --no-folding
RUN stow -t /home/user/ -d /home/tooling/ --no-folding
Dockerfile에서 /home/tooling
의 파일은 persistUserhome Home
기능을 사용하지 않는 경우에도 /home/user
에서 액세스할 수 있습니다.