6.2. 명령줄을 사용하여 LocalVolumeSet 사용자 정의 리소스 생성

LocalVolumeSet 사용자 지정 리소스를 생성하여 지정하는 기준에 따라 특정 스토리지 장치를 영구 볼륨으로 자동으로 프로비저닝합니다. nodeSelector 기준과 일치하는 노드에서 deviceInclusionSpec 기준과 일치하는 모든 장치에 대해 영구 볼륨이 생성됩니다.

사전 요구 사항

  • OpenShift Container Platform 클러스터에 대한 관리자 액세스

절차

  1. local-volume-set.yaml 파일에 LocalVolumeSet 사용자 지정 리소스를 정의합니다.

    apiVersion: local.storage.openshift.io/v1alpha1
    kind: LocalVolumeSet
    metadata:
      name: localblock
    spec:
      nodeSelector:
        nodeSelectorTerms:
          - matchExpressions:
              - key: kubernetes.io/hostname
                operator: In
                values:
                  - worker1.example.com
                  - worker2.example.com
                  - worker3.example.com
      storageClassName: localblock
      volumeMode: Block
      maxDeviceCount: 10 # optional, limit devices provisioned per node
      deviceInclusionSpec:
        deviceTypes: # list of types to allow
          - disk
          - part # omit this to use only whole devices
        deviceMechanicalProperty:
          - NonRotational
        minSize: 100Gi # optional, minimum size of device to allow
        maxSize: 100Ti # optional, maximum size of device to allow
        models: # (optional) list of models to allow
          - SAMSUNG
          - Crucial_CT525MX3
        vendors: # (optional) list of device vendors to allow
          - ATA
          - ST2000LM

    위의 정의는 worker1, worker2 및 worker 3 노드의 특정 공급 업체가 제공하는 100GB에서 100TB 크기의 특정 모델의 전체 디스크 또는 파티션을 선택합니다. localblock 스토리지 클래스가 생성되고 검색된 장치에서 영구 볼륨이 프로비저닝됩니다.

    중요

    minSize 에 적절한 값을 선택하여 시스템 파티션이 선택되지 않도록 합니다.

  2. LocalVolumeSet 을 생성합니다.

    $ oc create -f local-volume-set.yaml

검증 단계

  1. 다음 명령을 사용하여 deviceInclusionSpec 과 일치하는 장치에 대한 영구 볼륨의 프로비저닝을 추적합니다. 영구 볼륨을 프로비저닝하는 데 몇 분이 걸릴 수 있습니다.

    $ oc describe localvolumeset localblock
    [...]
    Status:
      Conditions:
        Last Transition Time:          2020-11-17T05:03:32Z
        Message:                       DiskMaker: Available, LocalProvisioner: Available
        Status:                        True
        Type:                          DaemonSetsAvailable
        Last Transition Time:          2020-11-17T05:03:34Z
        Message:                       Operator reconciled successfully.
        Status:                        True
        Type:                          Available
      Observed Generation:             1
      Total Provisioned Device Count: 4
    Events:
    Type    Reason      Age          From                Message
    ----    ------      ----         ----                -------
    Normal  Discovered  2m30s (x4    localvolumeset-     ip-10-0-147-124.us-east-
            NewDevice   over 2m30s)  symlink-controller  2.compute.internal -
                                                         found possible matching
                                                         disk, waiting 1m to claim
    Normal  FoundMatch  89s (x4      localvolumeset-     ip-10-0-147-124.us-east-
            ingDisk     over 89s)    symlink-controller  2.compute.internal -
                                                         symlinking matching disk
  2. 프로비저닝된 영구 볼륨의 상태를 확인합니다.

    $ oc get pv
                         ACCESS   RECLAIM             STORAGE
    NAME       CAPACITY  MODES    POLICY   STATUS     CLASS       AGE
    local-pv-  500Gi     RWO      Delete   Available  localblock  7m48s
    3584969f
    local-pv-  500Gi     RWO      Delete   Available  localblock  7m48s
    3aee84fa
    local-pv-  500Gi     RWO      Delete   Available  localblock  7m48s
    644d09ac
    local-pv-  500Gi     RWO      Delete   Available  localblock  7m48s
    c73cee1