이 페이지에는 Google Kubernetes Engine에서 Google Cloud 관리 Lustre CSI 드라이버를 사용할 때 발생하는 일반적인 문제와 오류의 문제 해결 단계가 포함되어 있습니다.
이 섹션의 문제 해결 단계를 따르기 전에 GKE에서 Managed Lustre에 연결할 때의 제한사항을 참고하세요.
최소 인스턴스 용량 업데이트
Managed Lustre 인스턴스의 최소 용량이 9000GiB로 업데이트되었습니다. Managed Lustre CSI 드라이버를 사용하여 9000GiB 인스턴스를 만들려면 클러스터 버전을 1.34.0-gke.2285000 이상으로 업그레이드하세요.
동적으로 프로비저닝된 Lustre 인스턴스의 성능 등급이 잘못됨
Lustre 인스턴스를 동적으로 프로비저닝할 때 API 요청에 지정된 perUnitStorageThroughput 값과 관계없이 PerUnitStorageThroughput에 대해 InvalidArgument 오류가 발생하면서 인스턴스 생성이 실패합니다.
이 문제는 1.33.4-gke.1036000 이전의 GKE 1.33 버전에 영향을 줍니다.
해결 방법:
GKE 클러스터를 버전 1.33.4-gke.1036000 이상으로 업그레이드합니다. 안정화 채널을 사용하는 경우 최신 버전이 아직 제공되지 않을 수 있습니다. 이 경우 수정사항이 포함된 일반 또는 신속 채널에서 버전을 수동으로 선택할 수 있습니다.
Managed Lustre 통신 포트
Managed Lustre CSI 드라이버는 GKE 클러스터 버전과 기존 Managed Lustre 구성에 따라 Managed Lustre 인스턴스와의 통신에 다른 포트를 사용합니다.
기본 포트 (
988): 버전1.33.2-gke.4780000이상을 실행하는 새 GKE 클러스터의 경우 드라이버는 기본적으로 Lustre 통신에 포트988을 사용합니다.기존 포트 (
6988): 드라이버는 다음 시나리오에서 포트6988을 사용합니다.- 이전 GKE 버전: GKE 클러스터에서
1.33.2-gke.4780000이전 버전을 실행하는 경우 CSI 드라이버를 사용 설정할 때--enable-legacy-lustre-port플래그가 필요합니다. 이 플래그를 사용 설정하면 GKE 노드에서gke-metadata-server와의 포트 충돌이 해결됩니다. - GKE 지원이 있는 기존 Managed Lustre 인스턴스:
--gke-support-enabled플래그로 생성된 기존 Managed Lustre 인스턴스에 연결하는 경우 클러스터 버전과 관계없이 CSI 드라이버를 사용 설정할 때--enable-legacy-lustre-port를 포함해야 합니다. 이 플래그가 없으면 GKE 클러스터가 기존 Lustre 인스턴스를 마운트하지 못합니다.
기존 포트로 CSI 드라이버를 사용 설정하는 방법에 관한 자세한 내용은 Lustre 통신 포트를 참고하세요.
- 이전 GKE 버전: GKE 클러스터에서
로그 쿼리
로그를 확인하려면 로그 탐색기에서 다음 쿼리를 실행하세요.
Managed Lustre CSI 드라이버 노드 서버 로그를 반환하려면 다음 단계를 따르세요.
resource.type="k8s_container"
resource.labels.pod_name=~"lustre-csi-node*"
볼륨 프로비저닝 문제 해결
PersistentVolumeClaim (PVC)이 Pending 상태로 유지되고 20~30분이 지나도 PersistentVolume (PV)이 생성되지 않으면 오류가 발생했을 수 있습니다.
PVC 이벤트를 확인합니다.
kubectl describe pvc PVC_NAME오류가 구성 문제나 잘못된 인수를 나타내는 경우 StorageClass 매개변수를 확인하세요.
PVC를 다시 만듭니다.
문제가 계속되면 Cloud Customer Care에 문의하세요.
볼륨 마운트 문제 해결
포드가 노드에 예약되면 볼륨이 마운트됩니다. 실패하면 포드 이벤트와 kubelet 로그를 확인합니다.
kubectl describe pod POD_NAME
CSI 드라이버 사용 설정 문제
증상:
MountVolume.MountDevice failed for volume "yyy" : kubernetes.io/csi: attacher.MountDevice failed to create newCsiDriverClient: driver name lustre.csi.storage.gke.io not found in the list of registered CSI drivers
또는
MountVolume.SetUp failed for volume "yyy" : kubernetes.io/csi: mounter.SetUpAt failed to get CSI client: driver name lustre.csi.storage.gke.io not found in the list of registered CSI drivers
원인: CSI 드라이버가 사용 설정되어 있지 않거나 아직 실행되고 있지 않습니다.
해결 방법:
- CSI 드라이버가 사용 설정되어 있는지 확인합니다.
- 클러스터가 최근에 확장되거나 업그레이드된 경우 드라이버가 작동할 때까지 몇 분 정도 기다립니다.
- 오류가 계속되면
lustre-csi-node로그에서 '작업이 허용되지 않음'을 확인하세요. 이는 노드 버전이 너무 오래되어 Managed Lustre를 지원할 수 없음을 나타냅니다. 이 문제를 해결하려면 노드 풀을 버전1.33.2-gke.1111000이상으로 업그레이드하세요. - 로그에 'LNET_PORT 불일치'가 표시되면 호환되는 Lustre 커널 모듈이 설치되도록 노드 풀을 업그레이드하세요.
마운트 지점이 이미 있음
증상:
MountVolume.MountDevice failed for volume "yyy" : rpc error: code = AlreadyExists
desc = A mountpoint with the same lustre filesystem name "yyy" already exists on
node "yyy". Please mount different lustre filesystems
원인: 단일 노드에서 파일 시스템 이름이 동일한 여러 Managed Lustre 인스턴스의 볼륨을 마운트하는 것은 지원되지 않습니다.
해결 방법: Managed Lustre 인스턴스마다 고유한 파일 시스템 이름을 사용하세요.
마운트 실패: 해당 파일 또는 디렉터리가 없음
증상:
MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: No such file or directory
원인: 지정된 파일 시스템 이름이 잘못되었거나 존재하지 않습니다.
해결 방법: StorageClass 또는 PV 구성의 fs_name이 Managed Lustre 인스턴스와 일치하는지 확인합니다.
마운트 실패: 입력/출력 오류
증상:
MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: Input/output error
원인: 클러스터가 Managed Lustre 인스턴스에 연결할 수 없습니다.
해결 방법:
- Managed Lustre 인스턴스의 IP 주소를 확인합니다.
- GKE 클러스터와 Managed Lustre 인스턴스가 동일한 VPC 네트워크에 있거나 올바르게 피어링되어 있는지 확인합니다.
내부 오류
증상: rpc error: code = Internal desc = ...
해결 방법: 오류가 계속되면 Cloud Customer Care에 문의하세요.
볼륨 마운트 해제 문제 해결
증상:
UnmountVolume.TearDown failed for volume "yyy" : rpc error: code = Internal desc = ...
해결 방법:
포드를 강제 삭제합니다.
kubectl delete pod POD_NAME --force문제가 계속되면 Cloud Customer Care에 문의하세요.
볼륨 삭제 문제 해결
PVC를 삭제한 후 PV가 장시간('Released' 상태로 1시간 이상) 유지되면 Cloud Customer Care에 문의하세요.
볼륨 확장 문제 해결
PVC가 ExternalExpanding에 멈춤
증상: PVC 상태가 Resizing로 변경되지 않고 이벤트에 ExternalExpanding가 표시됩니다.
원인: allowVolumeExpansion 필드가 누락되었거나 false로 설정되어 있을 수 있습니다.
해결 방법:
StorageClass에 allowVolumeExpansion: true이 있는지 확인합니다.
kubectl get storageclass STORAGE_CLASS_NAME -o yaml
확장 실패: 잘못된 인수
증상: VolumeResizeFailed: rpc error: code = InvalidArgument ...
원인: 요청된 크기가 잘못되었습니다 (예: 단계 크기의 배수가 아니거나 한도를 벗어남).
해결 방법: 유효한 용량 범위를 확인하고 유효한 크기로 PVC를 업데이트합니다.
확장 실패: 내부 오류
증상: VolumeResizeFailed ... rpc error: code = Internal
해결 방법: PVC를 다시 적용하여 확장 작업을 다시 시도합니다. 계속 실패하면 Cloud Customer Care에 문의하세요.
기한 지남
증상: DEADLINE_EXCEEDED이 있는 VolumeResizeFailed
원인: 작업이 예상보다 오래 걸리고 있지만 아직 진행 중일 수 있습니다.
해결 방법: 작업이 완료될 때까지 기다립니다. 리사이저가 자동으로 다시 시도합니다. 오랫동안 멈춰 있으면 (예: 90분 이상) 지원팀에 문의하세요.
할당량 초과
증상: 할당량 한도로 인해 확장 실패
해결 방법: 할당량 증가를 요청하거나 더 작은 용량 증가를 요청합니다.