상태 저장 애플리케이션(예: 데이터베이스)은 세션 간 데이터를 저장하며, 데이터 저장을 위해 영구 스토리지가 필요합니다. 보존된 데이터를 애플리케이션의 상태라고 합니다. 나중에 데이터를 검색하여 다음 세션에서 사용할 수 있습니다. Kubernetes는 해당 상태와 데이터를 보존할 수 있는 개체로 영구 볼륨을 제공합니다.
vSphere 환경에서 영구 볼륨 개체는 데이터스토어에 상주하는 가상 디스크로 백업됩니다. 데이터스토어는 스토리지 정책으로 표시됩니다. vSphere 관리자가 스토리지 정책(예: gold)을 생성하고 이를 감독자의 네임스페이스에 할당하면 이 스토리지 정책이 vSphere 네임스페이스 및 사용 가능한 모든 TKG 클러스터에 일치하는 Kubernetes 스토리지 클래스로 나타납니다.
DevOps 엔지니어는 스토리지 클래스를 영구 볼륨 할당 규격에 사용할 수 있습니다. 그런 다음 영구 볼륨 할당에서 스토리지를 사용하는 애플리케이션을 배포할 수 있습니다. 이 예제에서는 애플리케이션의 영구 볼륨이 동적으로 생성됩니다.
사전 요구 사항
vSphere 관리자가 적절한 스토리지 정책을 생성했고 해당 정책을 네임스페이스에 할당했는지 확인합니다.
프로시저
- vSphere Kubernetes 환경의 네임스페이스에 액세스합니다.
- 스토리지 클래스를 사용할 수 있는지 확인합니다.
- 영구 볼륨 할당을 생성합니다.
- 영구 볼륨 할당 구성을 포함하는 YAML 파일을 생성합니다.
이 예에서 파일은 gold 스토리지 클래스를 참조합니다.ReadWriteMany 영구 볼륨을 프로비저닝하려면
accessModes
를ReadWriteMany
로 설정합니다.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: accessModes: - ReadWriteOnce storageClassName: gold resources: requests: storage: 3Gi
- TKG 클러스터에 영구 볼륨 할당을 적용합니다.
kubectl apply -f pvc_name.yaml
이 명령은 할당의 스토리지 요구 사항을 충족하는 백업 가상 디스크가 있는 Kubernetes 영구 볼륨과 vSphere 볼륨을 동적으로 생성합니다. - 영구 볼륨 할당의 상태를 확인합니다.
kubectl get pvc my-pvc
출력은 볼륨이 영구 볼륨 할당에 바인딩되어 있음을 보여 줍니다.
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE my-pvc Bound my-pvc 2Gi RWO gold 30s
- 영구 볼륨 할당 구성을 포함하는 YAML 파일을 생성합니다.
- 영구 볼륨을 마운트하는 포드를 생성합니다.
- 영구 볼륨을 포함하는 YAML 파일을 생성합니다.
파일에는 다음과 같은 매개 변수가 포함되어 있습니다.
... volumes: - name: my-pvc persistentVolumeClaim: claimName: my-pvc
- YAML 파일에서 포드를 배포합니다.
kubectl create -f pv_pod_name.yaml
- 포드가 생성되었는지 확인합니다.
kubectl get pod
NAME READY STATUS RESTARTS AGE pod_name 1/1 Ready 0 40s
- 영구 볼륨을 포함하는 YAML 파일을 생성합니다.
결과
구성한 포드는 영구 볼륨 할당에 설명된 영구 스토리지를 사용합니다.