안녕하세요,

베스핀글로벌 GCP Support팀입니다.


이번 아티클에서는 주제 "Pod를 Persistent Volume에 마운트 시 Pod를 생성할 수 없는 에러"에 대해 다루고자 합니다.



Pod에 PV 마운트 실패 원인 분석 및 해결 방안



Pod에 PV를 부착하는 경우, 여러 원인에 의해 마운트가 되지 않는 경우가 발생할 수 있습니다.

yaml 파일에 명시된 PV가 마운트되지 않으면 Pod가 필요한 스토리지 리소스에 접근할 수 없어 Pod 생성이 실패할 수 있습니다.

주요 원인과 해결 방법은 다음과 같습니다.


1. Pod와 PV의 Zone 불일치


Pod를 생성한 Node의 위치와 PV의 위치가 다른 경우 마운트가 실패할 수 있습니다.

예를 들어 Pod를 생성한 Node가 aisa-northeast3-a Zone에 위치하며 마운트할 대상인 PV가 asia-northeast3-b Zone에 위치한다면 서로 다른 위치에 존재하고 있기 때문에 Pod와 PV간에 연결을 할 수 없습니다.


[해결방법]

  • 해당 PV 혹은 Node를 동일한 zone으로 이동시켜 생성합니다.
  • Regional PV를 사용하여 다른 Zone에 있어도 마운트가 가능하도록 합니다.



2. Access Mode 설정 오류 (ReadWriteOnce)


PV가 `ReadWriteOnce` Access Mode를 사용 중이고 이미 다른 Node의 Pod에 부착된 경우, 추가적인 마운트가 불가능합니다.

PV는 3가지 AccessMode를 지원합니다.


  • ReadWriteOnce: 볼륨은 단일 노드에 의한 읽기-쓰기로 마운트 될 수 있습니다.
  • ReadOnlyMany: 볼륨은 여러 노드에 의한 읽기 전용으로 마운트 될 수 있습니다.
  • ReadWriteMany: 볼륨은 여러 노드에 의한 읽기-쓰기로 마운트될 수 있습니다.
    ※ GKE 상에서 ReadWriteMany Access Mode를 사용하기 위해서는 Filestore 인스턴스 사용이 필요합니다.


[해결방법]

  • ReadWriteOnce를 사용 중이라면 1개의 노드에 대해서만 마운트 될 수 있습니다.
  • 여러 노드에 1개의 PV를 마운트 해야 하는 상황이라면, ReadOnlyMany 혹은 ReadWriteMany를 적용합니다.


3. PV 용량 부족


PV의 용량이 Pod에서 요청하는 용량보다 작은 경우, Pod는 PV에 마운트될 수 없습니다.


[해결방법]

  • PV의 용량을 증가시킵니다.
  • Pod에서 요청하는 용량을 줄입니다.



4. StorageClass 불일치


Pod의 PersistentVolumeClaim에서 지정한 StorageClass와 PV의 StorageClass가 일치하지 않는 경우, Pod는 PV에 마운트될 수 없습니다.


[해결방법]


  • Pod의 PersistentVolumeClaim에서 지정한 StorageClass와 PV의 StorageClass를 일치시킵니다.
  • StorageClass를 지정하지 않으면 기본 StorageClass가 사용됩니다.



5. 잘못된 PersistentVolumeClaim 설정


PersistentVolumeClaim의 설정이 잘못된 경우, Pod는 PV에 마운트될 수 없습니다. 

예를 들어, `accessModes` 필드에 잘못된 값이 지정된 경우 또는 `resources.requests.storage` 필드에 잘못된 값이 지정된 경우 등이 있습니다.


[해결방법]


  • PersistentVolumeClaim의 설정을 확인하고 수정합니다.
    특히 `accessModes` 및 `resources.requests.storage` 필드의 값을 확인합니다.


그외 GKE Storage 관련된 문제 해결 이슈는 문서[3]를 참고하시기 바랍니다.



참조 링크


[1] GKE 영구 볼륨 및 동적 프로비저닝

https://cloud.google.com/kubernetes-engine/docs/concepts/persistent-volumes


[2] PV Access Modes

https://cloud.google.com/compute/docs/disks#access_modes


[3] GKE의 스토리지 문제 해결

https://cloud.google.com/kubernetes-engine/docs/troubleshooting/storage



관련 문의사항이 있으시면 Support Portal에 문의해 주시기 바랍니다.


감사합니다.