Google Distributed Cloud (GDC) 공기 간격의 영구 스토리지를 사용하면 포드 수명 주기와 관계없이 컨테이너 데이터를 보존할 수 있습니다. PersistentVolumeClaim (PVC) 리소스로 볼륨을 요청하고 용량을 확장하여 다시 시작 및 재예약 전반에서 상태를 유지할 수 있습니다.
이 문서는 조직의 워크로드를 만드는 애플리케이션 운영자 그룹 내 개발자를 대상으로 합니다. 자세한 내용은 GDC 에어 갭 문서 대상을 참조하세요.
시작하기 전에
이 문서의 작업을 완료하려면 필요한 권한을 요청하고 환경을 준비해야 합니다.
IAM 역할 요청
영구 스토리지에 액세스하는 데 필요한 권한을 얻으려면 특정 역할이 있어야 합니다. 필요한 역할은 조직 범위 공유 클러스터 또는 프로젝트 범위 표준 클러스터 내에서 작업하는지 여부에 따라 다릅니다. 자세한 내용은 Kubernetes 클러스터 구성을 참조하세요.
공유 클러스터 역할
공유 클러스터에서 영구 볼륨을 만들거나, 삭제하거나, 수정하거나, 보려면 IAM 프로젝트 관리자에게 네임스페이스 관리자 (namespace-admin) 역할을 부여해 달라고 요청하세요. 이 역할은 프로젝트 네임스페이스에 바인딩됩니다.
표준 클러스터 역할
표준 클러스터에서 영구 볼륨을 만들거나 삭제, 수정, 보려면 IAM 프로젝트 관리자에게 클러스터 개발자(cluster-developer) 역할을 부여해 달라고 요청하세요. 이 역할은 프로젝트 네임스페이스에 바인딩됩니다.
개발 환경 준비
API를 사용하여 Kubernetes 클러스터에 대해 명령어를 실행하려면 다음 리소스가 있는지 확인합니다.
Kubernetes 클러스터 이름을 찾거나 플랫폼 관리자 그룹 구성원에게 클러스터 이름을 문의합니다.
Kubernetes 클러스터의 kubeconfig 파일을 로그인하고 생성합니다.
Kubernetes 클러스터의 kubeconfig 경로를 사용하여 이 안내에서
KUBERNETES_CLUSTER_KUBECONFIG를 바꿉니다.
영구 볼륨 만들기
다음 안내에서는 GDC standard-rwo StorageClass를 사용하여 볼륨을 만드는 방법을 보여줍니다. GDC에서 사용 가능한 StorageClass 리소스에 대한 자세한 내용은 컨테이너의 영구 스토리지를 참조하세요.
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객체의 이름입니다.
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 60sPVC를 사용하도록 컨테이너 워크로드를 구성합니다. 다음은
standard-rwoPVC를 사용하는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 EOFPVC_NAME을 만든 PVC로 바꿉니다.
볼륨 용량 확장
PersistentVolumeClaim 객체의 용량을 늘리려면 spec.resources.storage 필드를 새 용량으로 업데이트합니다. 지원되는 최대 볼륨 크기는 14.5Ti입니다.
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).
클러스터에서 업데이트된 PV의 상태를 확인합니다.
kubectl get pv --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG