상태 저장 애플리케이션(예: 데이터베이스)은 세션 간 데이터를 저장하며, 데이터 저장을 위해 영구 스토리지가 필요합니다. 보존된 데이터를 애플리케이션의 상태라고 합니다. 나중에 데이터를 검색하여 다음 세션에서 사용할 수 있습니다. Kubernetes는 해당 상태와 데이터를 보존할 수 있는 개체로 영구 볼륨을 제공합니다.

vSphere 환경에서 영구 볼륨 개체는 데이터스토어에 상주하는 가상 디스크로 백업됩니다. 데이터스토어는 스토리지 정책으로 표시됩니다. vSphere 관리자가 스토리지 정책(예: gold)을 생성하고 이를 감독자의 네임스페이스에 할당하면 이 스토리지 정책이 vSphere 네임스페이스 및 사용 가능한 모든 TKG 클러스터에 일치하는 Kubernetes 스토리지 클래스로 나타납니다.

DevOps 엔지니어는 스토리지 클래스를 영구 볼륨 할당 규격에 사용할 수 있습니다. 그런 다음 영구 볼륨 할당에서 스토리지를 사용하는 애플리케이션을 배포할 수 있습니다. 이 예제에서는 애플리케이션의 영구 볼륨이 동적으로 생성됩니다.

사전 요구 사항

vSphere 관리자가 적절한 스토리지 정책을 생성했고 해당 정책을 네임스페이스에 할당했는지 확인합니다.

프로시저

  1. vSphere Kubernetes 환경의 네임스페이스에 액세스합니다.
  2. 스토리지 클래스를 사용할 수 있는지 확인합니다.
  3. 영구 볼륨 할당을 생성합니다.
    1. 영구 볼륨 할당 구성을 포함하는 YAML 파일을 생성합니다.
      이 예에서 파일은 gold 스토리지 클래스를 참조합니다.
      ReadWriteMany 영구 볼륨을 프로비저닝하려면 accessModesReadWriteMany로 설정합니다.
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: my-pvc
      spec:
        accessModes:
          - ReadWriteOnce
        storageClassName: gold
        resources:
          requests:
              storage: 3Gi
                 
    2. TKG 클러스터에 영구 볼륨 할당을 적용합니다.
      kubectl apply -f pvc_name.yaml
      이 명령은 할당의 스토리지 요구 사항을 충족하는 백업 가상 디스크가 있는 Kubernetes 영구 볼륨과 vSphere 볼륨을 동적으로 생성합니다.
    3. 영구 볼륨 할당의 상태를 확인합니다.
      kubectl get pvc my-pvc

      출력은 볼륨이 영구 볼륨 할당에 바인딩되어 있음을 보여 줍니다.

      NAME     STATUS    VOLUME   CAPACITY   ACCESSMODES   STORAGECLASS   AGE
      my-pvc   Bound     my-pvc   2Gi        RWO           gold           30s
  4. 영구 볼륨을 마운트하는 포드를 생성합니다.
    1. 영구 볼륨을 포함하는 YAML 파일을 생성합니다.
      파일에는 다음과 같은 매개 변수가 포함되어 있습니다.
      ...
      volumes:
          - name: my-pvc
            persistentVolumeClaim:
              claimName: my-pvc
    2. YAML 파일에서 포드를 배포합니다.
      kubectl create -f pv_pod_name.yaml
    3. 포드가 생성되었는지 확인합니다.
      kubectl get pod
      NAME       READY   STATUS    RESTARTS   AGE
      pod_name   1/1     Ready     0          40s

결과

구성한 포드는 영구 볼륨 할당에 설명된 영구 스토리지를 사용합니다.