Udemy Labs - Certified Kubernetes Application Developer - Storage Class 오답노트

hyereen·2025년 1월 27일

Kubernetes

목록 보기
21/53

3
What is the name of the Storage Class that does not support dynamic volume provisioning?

풀이

controlplane ~ ➜  k describe storageclasses.storage.k8s.io 
Name:                  local-path
IsDefaultClass:        Yes
Annotations:           defaultVolumeType=local,objectset.rio.cattle.io/applied=H4sIAAAAAAAA/4yRz47UMAyHXwX53JYpnamqSBxg0V4QEhJoObuJOzVN4ypxi0areXeUMqDhwJ9j8ov9xZ+fARd+ophYAhhIKhHPVE1dqlhebjUUMHFwYODTj+jBY0pQwEyKDhXBPAOGIIrKElI+Ohpw9fokfp3p82UhMODFoocCpP9KVhNpFVkqi6qeMokz4i+5fAsUy/M2gYGpSXfJVhcv3nNwr984J+GfLQLOv/5T3sb9r6K0oM2V09pTmS5JaYbipzCbrVQ5ioGUdnmcypuJco/BgMaV4FqAx5787upP3BHTCAbqrhmak21Pw9Db5tAe20MzHJuhPnUH19m2w1cOe3fMTX+bbEEd8+USZeO8XIpgIGKwI8UMuHtWQMwD8PxRPNsLGHhHnjRr2fYdvuXgOJw/iMuAL8j6KPGRY9IHCWmdKcL1ewAAAP//KQ1Ko0kCAAA,objectset.rio.cattle.io/id=,objectset.rio.cattle.io/owner-gvk=k3s.cattle.io/v1, Kind=Addon,objectset.rio.cattle.io/owner-name=local-storage,objectset.rio.cattle.io/owner-namespace=kube-system,storageclass.kubernetes.io/is-default-class=true
Provisioner:           rancher.io/local-path
Parameters:            <none>
AllowVolumeExpansion:  <unset>
MountOptions:          <none>
ReclaimPolicy:         Delete
VolumeBindingMode:     WaitForFirstConsumer
Events:                <none>


Name:            local-storage
IsDefaultClass:  No
Annotations:     kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{},"name":"local-storage"},"provisioner":"kubernetes.io/no-provisioner","volumeBindingMode":"WaitForFirstConsumer"}

Provisioner:           kubernetes.io/no-provisioner
Parameters:            <none>
AllowVolumeExpansion:  <unset>
MountOptions:          <none>
ReclaimPolicy:         Delete
VolumeBindingMode:     WaitForFirstConsumer
Events:                <none>


Name:            portworx-io-priority-high
IsDefaultClass:  No
Annotations:     kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{},"name":"portworx-io-priority-high"},"parameters":{"priority_io":"high","repl":"1","snap_interval":"70"},"provisioner":"kubernetes.io/portworx-volume"}

Provisioner:           kubernetes.io/portworx-volume
Parameters:            priority_io=high,repl=1,snap_interval=70
AllowVolumeExpansion:  <unset>
MountOptions:          <none>
ReclaimPolicy:         Delete
VolumeBindingMode:     Immediate
Events:                <none>
  • Storage Class는 Kubernetes에서 동적 볼륨 프로비저닝을 설정하는 데 사용됨
  • Storage Class를 사용하면 PVC(PersistentVolumeClaim)가 요청할 때 자동으로 PV(PersistentVolume)가 생성되도록 할 수 있음
  • 동적 프로비저닝(dynamic provisioning)은 Kubernetes가 사용자가 정의한 요구 사항에 맞는 PV를 자동으로 생성하는 기능, 그러나 일부 Storage Class는 동적 프로비저닝을 지원하지 않을 수 있음
  • local-storage Storage Class: 로컬 스토리지를 사용하기 위한 설정, 일반적으로 로컬 디스크에 저장된 데이터를 관리하려고 할 때 사용
  • local-storage Storage Class는 no-provisioner를 사용
    • no-provisioner는 동적 프로비저닝을 하지 않겠다는 의미
    • 즉, 이 Storage Class는 자동으로 PV를 생성하지 않고, 대신에 이미 존재하는 로컬 저장소를 사용해야 함
    • local-storage는 동적 프로비저닝을 지원하지 않기 때문에, PVC를 요청해도 Kubernetes가 자동으로 PV를 생성하지 않음
    • 대신, 사용자가 직접 로컬 저장소를 미리 설정하고 PV를 수동으로 생성

9
Why is the PVC in a pending state despite making a valid request to claim the volume called local-pv?

Inspect the PVC events.

풀이

controlplane ~ ➜  k describe pvc
Name:          local-pvc
Namespace:     default
StorageClass:  local-storage
Status:        Pending
Volume:        
Labels:        <none>
Annotations:   <none>
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      
Access Modes:  
VolumeMode:    Filesystem
Used By:       <none>
Events:
  Type    Reason                Age               From                         Message
  ----    ------                ----              ----                         -------
  Normal  WaitForFirstConsumer  6s (x3 over 31s)  persistentvolume-controller  waiting for first consumer to be created before binding
  • WaitForFirstConsumer 모드는, PVC가 생성될 때 즉시 PV가 할당되지 않고, 해당 PVC를 사용하는 파드가 실행될 때까지 PV 바인딩을 기다린다는 뜻
  • 즉, PVC가 먼저 생성되더라도, 실제로 어떤 파드가 그 PVC를 사용하기 전까지는 PV가 바인딩되지 않음
  • 이 방식은 파드의 요구 사항에 맞는 PV를 할당하기 위해 파드가 시작될 때까지 기다린다는 특성을 가짐

정답
A pod Consuming the volume is not scheduled

0개의 댓글