This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.7.3. 볼륨을 사용하여 컨테이너 데이터 유지
컨테이너의 파일은 임시 파일입니다. 컨테이너가 충돌하거나 중지되면 데이터가 손실됩니다. 볼륨을 사용하여 Pod의 컨테이너에서 사용하는 데이터를 유지할 수 있습니다. 볼륨은 Pod 수명 동안 데이터가 저장되는 Pod의 컨테이너에 액세스할 수 있는 디렉터리입니다.
7.3.1. 볼륨 이해 링크 복사링크가 클립보드에 복사되었습니다!
볼륨은 Pod 및 해당 컨테이너에서 사용할 수 있는 마운트된 파일 시스템으로, 다수의 호스트-로컬 또는 네트워크 연결 스토리지 끝점에서 지원할 수 있습니다. 컨테이너는 기본적으로 영구적이 아니며 재시작 시 저장된 콘텐츠가 지워집니다.
볼륨의 파일 시스템에 오류가 없는지 확인한 후 오류가 있고 가능한 경우 오류를 복구하기 위해 OpenShift Container Platform에서는 mount
유틸리티 이전에 fsck
유틸리티를 호출합니다. 이러한 작업은 볼륨을 추가하거나 기존 볼륨을 업데이트할 때 수행됩니다.
가장 간단한 볼륨 유형은 단일 머신의 임시 디렉터리인 emptyDir
입니다. 관리자는 Pod에 자동으로 연결된 영구 볼륨을 요청할 수도 있습니다.
클러스터 관리자가 FSGroup 매개변수를 활성화하면 Pod의 FSGroup을 기반으로 한 할당량에 따라 emptyDir
볼륨 스토리지가 제한될 수 있습니다.
7.3.2. OpenShift Container Platform CLI를 사용하여 볼륨 작업 링크 복사링크가 클립보드에 복사되었습니다!
CLI 명령 oc set volume
을 사용하여 복제 컨트롤러 또는 배포 구성과 같은 Pod 템플릿이 있는 오브젝트의 볼륨 및 볼륨 마운트를 추가하고 제거할 수 있습니다. Pod의 볼륨 또는 Pod 템플릿이 있는 오브젝트도 나열할 수 있습니다.
oc set volume
명령에서는 다음과 같은 일반 구문을 사용합니다.
oc set volume <object_selection> <operation> <mandatory_parameters> <options>
$ oc set volume <object_selection> <operation> <mandatory_parameters> <options>
- 오브젝트 선택
-
oc set volume
명령에서object_selection
매개변수에 다음 중 하나를 지정합니다.
구문 | 설명 | 예 |
---|---|---|
|
유형 |
|
|
유형 |
|
|
지정된 라벨 선택기와 일치하는 유형 |
|
|
유형 |
|
| 리소스를 편집하는 데 사용할 파일 이름, 디렉터리 또는 URL입니다. |
|
- 작업
-
oc set volume
명령의operation
매개변수에--add
또는--remove
를 지정합니다. - 필수 매개변수
- 모든 필수 매개변수는 선택한 작업에 한정되며 뒤에 나오는 섹션에서 설명합니다.
- 옵션
- 모든 옵션은 선택한 작업에 한정되며 뒤에 나오는 섹션에서 설명합니다.
7.3.3. Pod의 볼륨 및 볼륨 마운트 나열 링크 복사링크가 클립보드에 복사되었습니다!
Pod 또는 Pod 템플릿의 볼륨 및 볼륨 마운트를 나열할 수 있습니다.
프로세스
볼륨 목록을 표시하려면 다음을 수행합니다.
oc set volume <object_type>/<name> [options]
$ oc set volume <object_type>/<name> [options]
볼륨에서 지원하는 옵션을 나열합니다.
옵션 | 설명 | 기본 |
---|---|---|
| 볼륨 이름입니다. | |
|
이름으로 컨테이너를 선택합니다. 문자와 일치하는 와일드카드 |
|
예를 들면 다음과 같습니다.
Pod p1에 대한 모든 볼륨을 나열하려면 다음을 실행합니다.
oc set volume pod/p1
$ oc set volume pod/p1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 배포 구성에 정의된 볼륨 v1을 나열하려면 다음을 실행합니다.
oc set volume dc --all --name=v1
$ oc set volume dc --all --name=v1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.4. Pod에 볼륨 추가 링크 복사링크가 클립보드에 복사되었습니다!
Pod에 볼륨 및 볼륨 마운트를 추가할 수 있습니다.
프로세스
볼륨, 볼륨 마운트 또는 둘 다를 Pod 템플릿에 추가하려면 다음을 실행합니다.
oc set volume <object_type>/<name> --add [options]
$ oc set volume <object_type>/<name> --add [options]
옵션 | 설명 | 기본 |
---|---|---|
| 볼륨 이름입니다. | 지정하지 않으면 자동으로 생성됩니다. |
|
볼륨 소스의 이름입니다. 지원되는 값은 |
|
|
이름으로 컨테이너를 선택합니다. 문자와 일치하는 와일드카드 |
|
|
선택한 컨테이너 내부의 마운트 경로입니다. 컨테이너 루트, | |
|
호스트 경로입니다. | |
|
보안의 이름입니다. | |
|
구성 맵의 이름입니다. | |
|
영구 볼륨 클레임의 이름입니다. | |
|
JSON 문자열로 된 볼륨 소스 세부 정보입니다. 필요한 볼륨 소스를 | |
|
수정된 오브젝트를 서버에서 업데이트하는 대신 표시합니다. 지원되는 값은 | |
| 지정된 버전으로 수정된 오브젝트를 출력합니다. |
|
예를 들면 다음과 같습니다.
레지스트리
DeploymentConfig
오브젝트에 새 볼륨 소스 emptyDir을 추가하려면 다음을 실행합니다.oc set volume dc/registry --add
$ oc set volume dc/registry --add
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보다음 YAML을 적용하여 볼륨을 추가할 수도 있습니다.
예 7.1. 추가된 볼륨이 있는 샘플 배포 구성
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 볼륨 소스 emptyDir 을 추가합니다.
복제 컨트롤러 r1에 대해 보안 secret1을 사용하여 볼륨 v1을 추가하고 /data:의 컨테이너 내부에 마운트하려면 다음을 실행합니다.
oc set volume rc/r1 --add --name=v1 --type=secret --secret-name='secret1' --mount-path=/data
$ oc set volume rc/r1 --add --name=v1 --type=secret --secret-name='secret1' --mount-path=/data
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보클레임 이름이 pvc1인 기존 영구 볼륨 v1을 디스크의 배포 구성 dc.json에 추가하려면 /data의 컨테이너 c1에 볼륨을 마운트하고 서버에서
DeploymentConfig
오브젝트를 업데이트합니다.oc set volume -f dc.json --add --name=v1 --type=persistentVolumeClaim \ --claim-name=pvc1 --mount-path=/data --containers=c1
$ oc set volume -f dc.json --add --name=v1 --type=persistentVolumeClaim \ --claim-name=pvc1 --mount-path=/data --containers=c1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보모든 복제 컨트롤러에서 수정 버전이 5125c45f9f563인 Git 리포지토리 https://github.com/namespace1/project1을 기반으로 볼륨 v1을 추가하려면 다음을 실행합니다.
oc set volume rc --all --add --name=v1 \ --source='{"gitRepo": {
$ oc set volume rc --all --add --name=v1 \ --source='{"gitRepo": { "repository": "https://github.com/namespace1/project1", "revision": "5125c45f9f563" }}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.5. Pod의 볼륨 및 볼륨 마운트 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
Pod에서 볼륨 및 볼륨 마운트를 수정할 수 있습니다.
프로세스
--overwrite
옵션을 사용하여 기존 볼륨을 업데이트합니다.
oc set volume <object_type>/<name> --add --overwrite [options]
$ oc set volume <object_type>/<name> --add --overwrite [options]
예를 들면 다음과 같습니다.
복제 컨트롤러 r1의 기존 볼륨 v1을 기존 영구 볼륨 클레임 pvc1로 교체하려면 다음을 실행합니다.
oc set volume rc/r1 --add --overwrite --name=v1 --type=persistentVolumeClaim --claim-name=pvc1
$ oc set volume rc/r1 --add --overwrite --name=v1 --type=persistentVolumeClaim --claim-name=pvc1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보다음 YAML을 적용하여 볼륨을 교체할 수 있습니다.
예 7.4.
pvc1
이라는 영구 볼륨 클레임을 사용하는 복제 컨트롤러 샘플Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 영구 볼륨 클레임을
pvc1
로 설정합니다.
DeploymentConfig
오브젝트 d1 마운트 옵션을 볼륨 v1의 /opt로 변경하려면 다음을 실행합니다.oc set volume dc/d1 --add --overwrite --name=v1 --mount-path=/opt
$ oc set volume dc/d1 --add --overwrite --name=v1 --mount-path=/opt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보다음 YAML을 적용하여 마운트 지점을 변경할 수도 있습니다.
예 7.5. 마운트 지점이 설정되어 있는 배포 구성 샘플
.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 마운트 지점을
/opt
으로 설정합니다.
7.3.6. Pod에서 볼륨 및 볼륨 마운트 제거 링크 복사링크가 클립보드에 복사되었습니다!
Pod에서 볼륨 또는 볼륨 마운트를 제거할 수 있습니다.
프로세스
Pod 템플릿에서 볼륨을 제거하려면 다음을 수행합니다.
oc set volume <object_type>/<name> --remove [options]
$ oc set volume <object_type>/<name> --remove [options]
옵션 | 설명 | 기본 |
---|---|---|
| 볼륨 이름입니다. | |
|
이름으로 컨테이너를 선택합니다. 문자와 일치하는 와일드카드 |
|
| 한 번에 여러 개의 볼륨을 제거할 것임을 나타냅니다. | |
|
수정된 오브젝트를 서버에서 업데이트하는 대신 표시합니다. 지원되는 값은 | |
| 지정된 버전으로 수정된 오브젝트를 출력합니다. |
|
예를 들면 다음과 같습니다.
DeploymentConfig
오브젝트 d1에서 볼륨 v1을 제거하려면 다음을 실행합니다.oc set volume dc/d1 --remove --name=v1
$ oc set volume dc/d1 --remove --name=v1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DeploymentConfig
오브젝트 d1의 컨테이너에서 참조하지 않는 경우 d1의 컨테이너 c1에서 볼륨 v1을 마운트 해제하고 볼륨 v1을 제거하려면 다음을 실행합니다.oc set volume dc/d1 --remove --name=v1 --containers=c1
$ oc set volume dc/d1 --remove --name=v1 --containers=c1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 복제 컨트롤러 r1의 모든 볼륨을 제거하려면 다음을 실행합니다.
oc set volume rc/r1 --remove --confirm
$ oc set volume rc/r1 --remove --confirm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.7. Pod에서 다양한 용도의 볼륨 구성 링크 복사링크가 클립보드에 복사되었습니다!
볼륨의 루트 대신 볼륨 내부에 subPath
값을 지정하는 volumeMounts.subPath
속성을 사용하여 단일 Pod에서 다양한 용도로 하나의 볼륨을 공유하도록 볼륨을 구성할 수 있습니다.
예약된 기존 Pod에 subPath
매개변수를 추가할 수 없습니다.
프로세스
볼륨의 파일 목록을 보려면
oc rsh
명령을 실행합니다.oc rsh <pod>
$ oc rsh <pod>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
ls /path/to/volume/subpath/mount
sh-4.2$ ls /path/to/volume/subpath/mount example_file1 example_file2 example_file3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow subPath
를 지정합니다.subPath
매개변수가 포함된Pod
사양의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow