Kubernetes 클러스터에 참여하는 클라우드 네이티브 스토리지 환경과 가상 시스템은 몇 가지 요구 사항을 충족해야 합니다.
클라우드 네이티브 스토리지 요구 사항
- 호환되는 버전의 vSphere.
- 호환되는 버전의 Kubernetes.
- 가상 시스템에 배포된 Kubernetes 클러스터. vSphere CSI 플러그인을 배포하고 vSphere에서 Kubernetes 클러스터를 실행하는 방법에 대한 자세한 내용은 VMware vSphere Container Storage 플러그인 설명서를 참조하십시오.
Kubernetes 클러스터 가상 시스템에 대한 요구 사항
- 하드웨어 버전 15 이상의 가상 시스템. 각 노드 가상 시스템에 VMware Tools를 설치합니다.
- 가상 시스템 하드웨어 권장 사항:
- 워크로드 요구 사항에 따라 적절하게 CPU 및 메모리를 설정합니다.
- 노드 VM의 기본 디스크에 대해 VMware 반가상화 SCSI 컨트롤러를 사용합니다.
- 모든 가상 시스템은 vSAN과 같은 공유 데이터스토어에 액세스할 수 있어야 합니다.
- 각 노드 VM에서 disk.EnableUUID 매개 변수를 설정합니다. vSphere 가상 시스템에서 Kubernetes 클러스터 구성의 내용을 참조하십시오.
- 오류와 예측할 수 없는 동작을 방지하려면 CNS 노드 VM의 스냅샷을 생성하지 마십시오.
CNS 파일 볼륨에 대한 요구 사항
- vSphere 7.0 이상을 호환되는 Kubernetes 버전과 사용합니다.
- 호환되는 버전의 CSI를 사용합니다. 자세한 내용은 VMware vSphere Container Storage 플러그인 설명서를 참조하십시오.
- vSAN 파일 서비스를 사용하도록 설정하고 구성합니다. 필요한 파일 서비스 도메인, IP 풀, 네트워크 등을 구성해야 합니다. 자세한 내용은 "VMware vSAN 관리" 설명서를 참조하십시오.
- 특정 지침에 따라 Kubernetes 노드의 게스트 운영 체제에서 vSAN 파일 공유로 네트워크 액세스를 구성합니다. vSAN 파일 공유에 대한 네트워크 액세스 구성의 내용을 참조하십시오.
vSAN 파일 공유에 대한 네트워크 액세스 구성
일반 vSphere Kubernetes 환경에서 ReadWriteMany 영구 볼륨을 프로비저닝할 수 있도록, Kubernetes 노드에서 vSAN 파일 서비스 네트워크로 필요한 네트워크, 스위치 및 라우터를 구성합니다.
네트워크 설정
- 모든 Kubernetes 노드에서 vSAN 파일 공유 트래픽에 전용 vNIC를 사용할 수 있습니다. 이 옵션은 파일 볼륨에 보안 데이터 트래픽 경로를 사용하려는 경우에만 필요합니다.
- 전용 vNIC를 사용하는 경우 전용 vNIC를 통과하는 트래픽을 하나 이상의 vSAN 파일 서비스 네트워크로 라우팅할 수 있도록 해야 합니다.
- 각 Kubernetes 노드의 게스트 운영 체제만 파일 공유 IP 주소를 통해 vSAN 파일 공유에 직접 액세스할 수 있도록 해야 합니다. 노드에 포함된 포드는 IP 주소로 vSAN 파일 공유에 ping하거나 액세스할 수 없습니다.
CNS CSI 드라이버는 게스트 운영 체제에 마운트 지점을 생성하여 CNS 파일 볼륨을 사용하도록 구성된 포드만 vSAN 파일 공유에 액세스할 수 있도록 보장합니다.
- 노드 VM과 vSAN 파일 공유 간에 IP 주소 충돌을 피하십시오.
다음 그림은 vSAN 파일 공유 서비스가 사용된 CNS 네트워크 구성의 예입니다.
- 이 구성은 CNS 환경에서 다른 항목에 대해 별도의 네트워크를 사용합니다.
네트워크 설명 vSphere 관리 네트워크 대개, 일반적인 Kubernetes 클러스터에서는 모든 노드가 이 네트워크에 액세스할 수 있습니다. 포드 또는 노드 네트워크 이 네트워크는 Kubernetes에서 노드 대 노드 또는 포드 대 포드 통신에 사용됩니다. 전용 파일 공유 네트워크 이 네트워크는 CNS 파일 볼륨 데이터 트래픽에 사용됩니다. vSAN 파일 공유 네트워크 vSAN 파일 공유가 사용되도록 설정되고 파일 공유를 사용할 수 있는 네트워크입니다. - 모든 Kubernetes 노드에는 파일 트래픽을 위한 전용 vNIC가 있습니다. 이 vNIC는 노드 대 노드 또는 포드 대 포드 통신에 사용되는 vNIC와는 별개입니다. 이 구성은 예제로만 사용되지만 필수는 아닙니다.
- CNS 파일 공유를 사용하도록 구성된 애플리케이션만 노드 게스트 운영 체제의 마운트 지점을 통해 vSAN 파일 공유에 액세스할 수 있습니다. 예를 들어 그림에서는 다음과 같은 작업이 수행됩니다.
- 애플리케이션-1 및 애플리케이션-2 포드는 파일 볼륨을 사용하도록 구성되고 CSI 드라이버가 생성한 마운트 지점을 통해 파일 공유에 액세스할 수 있습니다.
- 애플리케이션-3 및 애플리케이션-4는 파일 볼륨을 사용하도록 구성되지 않고 파일 공유에 액세스할 수 없습니다.
- vSAN 파일 공유는 ESXi 호스트의 vSAN 파일 공유 장치 VM에 컨테이너로 배포됩니다. Kubernetes 배포자란 Kubernetes 클러스터를 구성, 배포 및 관리할 수 있는 소프트웨어 또는 서비스를 말하며, 필요한 라우터와 스위치를 구성합니다. 그래야 Kubernetes 노드의 게스트 운영 체제가 vSAN 파일 공유에 액세스할 수 있습니다.
보안 제한 사항
- CNS 파일 기능은 CNS 파일 볼륨 ID가 있는 사용자를 볼륨에 대한 권한이 있는 사용자라고 가정합니다. CNS 파일 볼륨 ID가 있는 사용자는 볼륨에 저장된 데이터에 액세스할 수 있습니다.
- CNS 파일 볼륨은 AUTH_SYS 인증(사용자 ID 기반 인증)만 지원합니다. CNS 파일 볼륨에 있는 데이터에 대한 액세스를 보호하려면 CNS 파일 볼륨에 액세스하는 컨테이너에 적절한 사용자 ID를 사용해야 합니다.
- CNS 파일 볼륨을 참조하는 바인딩되지 않은 ReadWriteMany 영구 볼륨은 네임스페이스의 Kubernetes 사용자가 생성한 영구 볼륨 할당에 바인딩될 수 있습니다. 보안 문제를 피하기 위해, 권한이 있는 사용자만 Kubernetes에 액세스할 수 있도록 해야 합니다.
vSAN 파일 서비스 클러스터에 액세스하도록 CSI 드라이버 구성
구성에 따라 CSI 드라이버는 파일 서비스가 사용되도록 설정된 단일 vSAN 클러스터 또는 여러 vSAN 클러스터에 파일 볼륨을 프로비저닝할 수 있습니다.
파일 서비스가 사용되도록 설정된 특정 vSAN 클러스터에만 액세스할 수 있도록 제한할 수 있습니다. Kubernetes 클러스터를 배포할 때 특정 파일 서비스 vSAN 클러스터에 액세스할 수 있도록 CSI 드라이버를 구성합니다. 그러면 CSI 드라이버는 해당 vSAN 클러스터에만 파일 볼륨을 프로비저닝할 수 있습니다.
기본 구성에서 CSI 드라이버는 vCenter Server에서 사용할 수 있는 모든 파일 서비스 vSAN 클러스터를 파일 볼륨 프로비저닝에 사용합니다. CSI 드라이버는 파일 볼륨을 프로비저닝하는 동안 어떤 파일 서비스 vSAN 클러스터에 액세스할 수 있는지를 확인하지 않습니다.