tencent cloud

Tencent Kubernetes Engine

문서Tencent Kubernetes Engine

PV 및 PVC를 사용하여 CBS 관리

Download
포커스 모드
폰트 크기
마지막 업데이트 시간: 2025-12-30 17:44:40

작업 시나리오

Tencent Kubernetes Engine(TKE)을 사용하면 PV/PVC를 생성하고, 워크로드에 볼륨을 추가할 때 기존 PVC를 사용하여 PV 및 PVC를 사용하여 클라우드 디스크를 관리할 수 있습니다. 본문은 콘솔, Kubectl 두 가지 방식을 통해 PV/PVC로 클라우드 디스크를 관리하는 과정을 안내합니다.
주의사항
Tencent Cloud 클라우드 디스크는 여러 가용존에 마운트할 수 없습니다. CBS 유형 PV가 마운트된 Pod가 다른 가용존으로 마이그레이션되면 PV가 자동으로 마운트 해제됩니다.
클라우드 디스크를 확장하려면 클라우드 블록 스토리지 콘솔로 이동해야 합니다. 자세한 내용은 클라우드 디스크 확장을 참고하십시오.

작업 단계

TKE 콘솔 작업

콘솔을 통해 StorageClass 생성

CBS PV를 정적으로 생성하는 경우 동일한 유형의 StorageClass와 바인딩해야 합니다. 자세한 내용은 StorageClass 생성을 참고하십시오.

PV 정적 생성

설명
이 접근 방식은 클러스터에서 사용되는 기존 클라우드 디스크가 이미 있는 시나리오에 적용할 수 있습니다.
1. TKE 콘솔에 로그인하고 왼쪽 사이드바에서 Cluster를 선택합니다.
2. 클러스터 관리 페이지에서 대상 클러스터의 ID를 선택합니다.
3. 클러스터 세부 정보 페이지의 왼쪽 사이드바에서 스토리지 > PersistentVolume을 선택하여 다음 이미지와 같이 ‘PersistentVolume’ 페이지로 이동합니다.

4. 생성을 클릭하여 ‘PersistentVolume 생성’ 페이지로 이동하고 매개변수를 구성합니다.

주요 매개변수 정보는 다음과 같습니다.
소스 설정: 정적 생성을 선택합니다.
이름: 사용자 지정 이름입니다. 이 문서에서는 cbs-pv를 예로 사용합니다.
Provisioner: CBS(Cloud Block Storage)를 선택합니다.
읽기/쓰기 권한: CBS 디스크는 단일 시스템 읽기 및 쓰기만 지원합니다.
StorageClass: 필요에 따라 StorageClass를 선택합니다. 이 문서에서는 StorageClass 생성 단계에서 생성한 cbs-test를 예로 사용합니다.
설명
PVC와 PV는 동일한 StorageClass에 바인딩됩니다.
StorageClass를 지정하지 않으면 해당 PV의 StorageClass 값은 비어 있고, 해당 YAML 파일의 storageClassName 필드 값은 null 문자열입니다.
클라우드 디스크: 기존 클라우드 디스크를 선택합니다.
파일 시스템: 기본값은 ext4입니다.
5. PersistentVolume 생성을 클릭하여 생성을 완료합니다.

PVC 생성

1. 클러스터 세부 정보 페이지의 왼쪽 사이드바에서 스토리지 > PersistentVolumeClaim을 선택하여 다음 이미지와 같이 ‘PersistentVolumeClaim’ 페이지로 이동합니다.


2. 생성을 클릭하여 ‘PersistentVolumeClaim 생성’ 페이지로 이동합니다. 여기에서 다음 이미지와 같이 필요에 따라 PVC 매개변수를 설정할 수 있습니다.


주요 매개변수 정보는 다음과 같습니다.
이름: 사용자 지정 이름입니다. 이 문서에서는 cbs-pvc를 예로 사용합니다.
네임스페이스: ‘default’를 선택합니다.
Provisioner: CBS(Cloud Block Storage)를 선택합니다.
읽기/쓰기 권한: CBS 디스크는 단일 시스템 읽기 및 쓰기만 지원합니다.
StorageClass: 필요에 따라 StorageClass를 선택합니다. 이 문서에서는 StorageClass 생성 단계에서 생성한 cbs-test를 예로 사용합니다.
설명
PVC와 PV는 동일한 StorageClass에 바인딩됩니다.
StorageClass를 지정하지 않으면 해당 PVC의 StorageClass 값은 비어 있고, 해당 YAML 파일의 storageClassName 필드 값은 null 문자열입니다.
PersistVolume: PersistentVolume을 지정합니다. 이 문서에서는 PV 정적 생성 단계에서 생성한 cbs-pv를 예로 사용합니다.
설명
지정된 StorageClass 및 Available 또는 Released 상태의 PV만 선택할 수 있습니다. 현재 클러스터에 조건을 충족하는 PV가 없으면 PersistVolume 지정에서 ‘지정하지 않음’을 선택합니다.
선택한 PV의 상태가 Released인 경우 PV가 PVC와 성공적으로 바인딩될 수 있도록 PV의 해당 YAML 구성 파일에서 claimRef 필드를 수동으로 삭제해야 합니다. 자세한 내용은 PV 및 PVC 바인딩 규칙을 참고하십시오.
3. PersistentVolumeClaim 생성을 클릭하여 생성을 완료합니다.

PVC 볼륨을 사용하기 위한 Workload 생성

설명
다음 예시에서는 Deployment 워크로드를 생성합니다.
1. ‘클러스터 관리’ 페이지에서 대상 클러스터 ID를 선택하여 Workload를 배포할 클러스터의 ‘Deployment’ 페이지로 이동합니다.
2. 생성을 클릭하여 ‘Workload 생성’ 페이지로 이동합니다. Deployment 생성을 참고하여 생성한 후, 다음 이미지와 같이 필요에 따라 볼륨을 마운트합니다.


볼륨(선택 사항):
마운트 방법: ‘기존 PVC 사용’을 선택합니다.
볼륨 이름: 사용자 지정 이름을 설정합니다. 이 문서에서는 cbs-vol을 예로 사용합니다.
PVC 선택: PVC 생성 단계에서 생성한 ‘cbs-pvc’를 선택합니다.
인스턴스 컨테이너: 마운트 포인트 추가를 클릭하여 마운트 포인트를 설정합니다.
볼륨: 이 단계에서 추가한 볼륨 ‘cbs-vol’을 선택합니다.
대상 경로: 대상 경로를 입력합니다. 이 문서에서는 /cache를 예로 사용합니다.
서브 경로: /data 또는 /test.txt와 같은 서브 경로 또는 선택한 볼륨의 단일 파일만 마운트합니다.
3. Workload 생성을 클릭하여 생성을 완료합니다.
주의사항
CBS의 PVC 마운트 방식을 사용하면 하나의 Node에만 볼륨을 마운트할 수 있습니다.

Kubectl 작업 가이드

다음 샘플 YAML 파일을 틍해 Kubectl로 생성 작업을 진행할 수 있습니다.

(선택 사항)PV 생성

기존 CBS 디스크를 이용하여 PV를 생성할 수 있습니다. 직접 PVC 생성을 진행할 수도 있습니다. 해당 PV는 자동으로 생성됩니다. 샘플 YAML 파일은 다음과 같습니다.
apiVersion: v1
kind: PersistentVolume
metadata:
name: cbs-test
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 10Gi
csi:
driver: com.tencent.cloud.csi.cbs
fsType: ext4
readOnly: false
volumeHandle: disk-xxx # 기존 CBS id 지정
storageClassName: cbs

PVC 생성

PV 생성을 하지 않으면 PVC 생성 시 해당 PV가 시스템에서 자동으로 생성됩니다. 샘플 YAML 파일은 다음과 같습니다.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: nginx-pv-claim
spec:
storageClassName: cbs
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
클라우드 디스크의 용량은 10의 배수여야 합니다.
프리미엄 클라우드 디스크의 최소 용량은 10GB이며, SSD 클라우드 디스크 또는 인핸스드 SSD 클라우드 디스크의 최소 용량은 20GB입니다. 자세한 내용은 클라우드 디스크 생성을 참고하십시오.

PVC 사용

PVC 볼륨을 사용하도록 Workload를 생성할 수 있습니다. 샘플 YAML 파일은 다음과 같습니다.
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 1
selector:
matchLabels:
qcloud-app: nginx-deployment
template:
metadata:
labels:
qcloud-app: nginx-deployment
spec:
containers:
- image: nginx
imagePullPolicy: Always
name: nginx
volumeMounts:
- mountPath: "/opt/"
name: pvc-test
volumes:
- name: pvc-test
persistentVolumeClaim:
claimName: nginx-pv-claim # 이미 생성된 PVC


도움말 및 지원

문제 해결에 도움이 되었나요?

피드백