[번역] CNS – not just for vSAN

출처 : https://cormachogan.com/2019/11/18/cns-not-just-for-vsan/

cns-take-4.webp

매우 이벤트적인 VMworld 이후 vSphere 6.7U3과 함께 출시된 Cloud Native Storage 기능인 CNS에 대해 많은 질문을 받았다. 대부분의 CNS 관련 데모 및 블로그 기사는 vSAN에 초점을 맞추고 있지만, 이 기능이 VMFS 및 NFS 데이터스토어에서도 작동한다는 점을 놓쳤을 수 있다. 그러한 이유로 CNS가 VMFS 및 NFS 데이터스토어 모두에서 생성된 Kubernetes Persistent Volumes(PV)에 대한 정보를 vSphere에 버블링(bubble up)할 수 있는 몇 가지 예를 생성하기로 결정했다. 먼저 VMFS 데이터스토어와 NFS 데이터스토어에 태그를 지정하는 간단한 정책을 생성하는 것으로 시작한다. 그런 다음 정책은 Kubernetes의 StorageClass의 일부를 구성한다. Kubernetes에 PV(Persistent Volumes)가 있는 앱을 배포한 후, vSphere Client UI에 PV에 대한 유용한 정보가 표시되는지 확인해서 Kubernetes가 vSphere 스토리지를 사용하는 방법에 대한 VI-Admin 통찰력을 제공할 것이다.

데이터스토어 태그 지정

시작하기 전에 먼저 VMFS 및 NFS 데이터스토어에 태그 기반 배치 규칙 정책을 사용한다. 단순성을 위해 스토리지라는 태그 카테고리를 만들고 NFS 데이터스토어에 bonzen-nfs 태그를 지정하고, VMFS-6 데이터스토어에 silver-vmfs 태그를 지정했다. 태그를 표시하는 스크린샷 두 개:

NFS-tags.webp

VMFS-tags.webp

이제 데이터스토어에 태그를 지정했으므로 SPBM(스토리지 정책 기반 관리)을 사용해서, 두 개의 태그 기반 정책을 생성할 수 있다.

정책 구축

정책을 만드는 것은 매우 간단하다. vSphere Client UI의 VM 스토리지 정책에서 'VM 스토리지 정책 생성' 옵션을 누른다. 여기서 아래 그림과 같이 태그 기반 배치 규칙을 수행하는 옵션을 선택한다.

tag-based-placement-rules.webp

계속해서 두 가지 정책, 즉 NFS 데이터스토어로 해결할 정책과 VMFS-6 데이터스토어로 해결할 정책을 생성했다. 올바른 태그 범주(저장소)와 적절한 태그(silver-vmfs 또는 bonch-nfs)를 선택하여 배치용 NFS 데이터스토어를 선택하는 정책(동조라고 함)과 배치용 VMFS 데이터스토어를 선택하는 다른 정책(은색이라고 함)을 갖게 되었다. 정책 세부 사항은 다음과 같다.

bronze-nfs-tab-policy.webp

silver-vmfs-tag-policy.webp

이러한 정책은 이제 Kubernetes의 StorageClass 구성을 통해 참조될 수 있다.

정책과 일치하도록 StorageClass 생성

이제 정책이 존재하므로 vSphere CSI(Container Storage Interface) 드라이버는 StorageClass 매니페스트(yaml)에 parameter.storagepolicyname을 추가하기만 하면 SPBM 정책을 참조할 수 있다. 다음은 실버/VMFS 정책에 사용한 샘플 StorageClass:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: cass-vmfs-sc
annotations:
storageclass.kubernetes.io/is-default-class: "false"
provisioner: csi.vsphere.vmware.com
parameters:
storagepolicyname: "silver"

bronze/NFS 정책도 거의 동일하다:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: cass-nfs-sc
annotations:
storageclass.kubernetes.io/is-default-class: "false"
provisioner: csi.vsphere.vmware.com
parameters:
storagepolicyname: "bronze"

위의 StorageClass로 생성된 영구 볼륨은 각각 silver 또는 bronze인지에 따라 VMFS 또는 NFS에 프로비저닝된다.

이건 CNS에서 어떤 모습일까?

NFS/VMFS용 Cloud Native Storage

다시 한 번 말하지만, vSphere 6.7U3과 새 CSI 드라이버를 사용하는 경우 위에서 생성한 StorageClass를 사용하여 VMFS 또는 NFS에 프로비저닝된 영구 볼륨도 CNS UI에 표시된다. 예를 들어, 동일한 K8s 클러스터의 NFS 및 VMFS에 3-노드 Cassandra 애플리케이션을 구축했다. CNS에서는 이렇게 보인다.

CNS-VMFS-NFS.webp

여기서 라벨 정보(Kubernetes에서 수집), 데이터스토어, 정책(solver 또는 bronze), 정책의 준수 여부 및 다양한 기타 정보를 볼 수 있다. PV에 대한 자세한 내용을 보려면 두 번째 열의 아이콘을 클릭해도 된다.

CNS-detail.webp

여기서 우리는 PV가 부착된 네임스페이스와 파드 포함한 영구 볼륨 클레임의 세부사항을 볼 수 있다. Basics는 더 많은 정책 관련 정보를 제공하지만, PV가 연결된 Kubernetes 워커 노드(vSphere 스토리지에서 PV는 단순히 VMDK로 생각할 수 있음):

CNS-basics.webp

결론적으로, CNS가 어떻게 vSAN에 구축된 Kubernetes의 영구 볼륨뿐만 아니라 VMFS나 NFS와 같은 다른 vSphere 스토리지 유형에 대한 통찰력을 제공하는지 보여주길 바란다. 우리는 가까운 미래에 VVols를 지원하는 CNS를 갖기를 희망한다.

구강사의 간단 요약

  • vSphere 6.7 Update3에 CNS(Cloud Native Storage) 기능이 추가되었다.
  • vSAN 뿐만 아니라, VMFS/NFS 데이터스토어에서도 사용할 수 있다!
  • vVols에서는 아직 안된다.