영구 스토리지 액세스

이 페이지에서는 Google Distributed Cloud (GDC) 에어갭 소버린 유니버스에서 컨테이너 워크로드의 영구 스토리지를 만들고 관리하는 방법을 설명합니다. 영구 스토리지는 워크로드 예약 위치와 관계없이 애플리케이션에 일관된 ID와 안정적인 호스트 이름을 제공합니다.

이 페이지는 애플리케이션 운영자 그룹 내에서 조직의 애플리케이션 워크로드를 만드는 개발자를 위한 페이지입니다. 자세한 내용은 GDC 오프라인 문서의 대상을 참고하세요.

시작하기 전에

이 문서의 작업을 완료하려면 다음 리소스와 역할이 있어야 합니다.

  • Kubernetes 클러스터에 대해 명령어를 실행하려면 다음 리소스가 있어야 합니다.

    • Kubernetes 클러스터 이름을 찾거나 플랫폼 관리자 그룹의 구성원에게 클러스터 이름을 묻습니다.

    • Kubernetes 클러스터의 kubeconfig 파일이 없는 경우 로그인하여 생성합니다.

    • Kubernetes 클러스터의 kubeconfig 경로를 사용하여 이 안내의 KUBERNETES_CLUSTER_KUBECONFIG를 바꿉니다.

  • 공유 클러스터에서 영구 볼륨을 만드는 데 필요한 권한을 얻으려면 조직 IAM 관리자에게 프로젝트 네임스페이스에 네임스페이스 관리자 역할(namespace-admin)을 부여해 달라고 요청하세요.

  • 표준 클러스터에서 영구 볼륨을 만드는 데 필요한 권한을 얻으려면 조직 IAM 관리자에게 표준 클러스터에 클러스터 개발자 역할 (cluster-developer)을 부여해 달라고 요청하세요.

영구 볼륨 만들기

다음 안내에서는 GDC standard-rwo StorageClass를 사용하여 볼륨을 만드는 방법을 보여줍니다. GDC에서 사용할 수 있는 StorageClass 리소스에 관한 자세한 내용은 컨테이너용 영구 스토리지를 참고하세요.

  1. PersistentVolumeClaim 리소스 (PVC)를 만들고 ReadWriteOnce 액세스 모드와 standard-rwo 스토리지 클래스로 구성합니다.

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: PVC_NAME
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      storageClassName: standard-rwo
    EOF
    

    다음을 바꿉니다.

    • KUBERNETES_CLUSTER_KUBECONFIG: 클러스터의 kubeconfig 파일입니다.

    • NAMESPACE: PVC를 만들 네임스페이스입니다. 공유 클러스터의 경우 프로젝트 네임스페이스여야 합니다. 표준 클러스터의 경우 모든 네임스페이스가 될 수 있습니다.

    • PVC_NAME: PersistentVolumeClaim 객체의 이름입니다.

  2. PVC 객체를 사용할 수 있는지 확인합니다.

    kubectl get pvc --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        --namespace NAMESPACE
    

    출력은 다음과 비슷합니다.

    NAME       CAPACITY   ACCESS MODES   STATUS      CLAIM     STORAGECLASS   AGE
    pvc-uuid   10Gi       RWO            Bound       pvc-name  standard-rwo   60s
    
  3. PVC를 사용하도록 컨테이너 워크로드를 구성합니다. 다음은 standard-rwo PVC를 사용하는 nginx 포드의 예입니다.

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: v1
    kind: Pod
    metadata:
      name: web-server-deployment
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        volumeMounts:
        - mountPath: /usr/share/nginx/html
          name: data
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: PVC_NAME
    EOF
    

    PVC_NAME을 생성한 PVC로 바꿉니다.

볼륨 용량 확장

PersistentVolumeClaim 객체의 용량을 늘리려면 spec.resources.storage 필드를 새 용량으로 업데이트합니다. 지원되는 최대 볼륨 크기는 14.5Ti입니다.

  1. PersistentVolumeClaim 객체의 매니페스트 파일에서 볼륨을 더 큰 크기로 업데이트합니다.

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: PVC_NAME
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: VOLUME_STORAGE_SIZE
    EOF
    

    다음을 바꿉니다.

    • KUBERNETES_CLUSTER_KUBECONFIG: 클러스터의 kubeconfig 파일입니다.

    • NAMESPACE: PVC 리소스가 있는 네임스페이스입니다. 공유 클러스터의 경우 프로젝트 네임스페이스여야 합니다. 표준 클러스터의 경우 모든 네임스페이스가 될 수 있습니다.

    • PVC_NAME: 스토리지 크기를 늘릴 PVC의 이름입니다.

    • VOLUME_SNAPSHOT_SIZE: 늘릴 스토리지 크기입니다(예: 50Gi).

  2. 클러스터에서 업데이트된 PV의 상태를 확인합니다.

    kubectl get pv --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG
    

다음 단계