NFS on Kubernetes

This entry is part 1 of 3 in the series Kubernetes Storages

Kubernetes용 NFS Provisioner는 두 가지가 눈에 띈다.

둘 다 NFS-Ganesha를 이용하는데 벤치마크로 봤을 때 준수하고 무난한 선택이라고 생각한다. 로컬 디스크 대비해 50~60%의 성능을 보인다. 기대치에 따라 좋다고도 나쁘다고도 할 수 있다. WordPress처럼 서버를 수평확장하려면 NFS가 필수적인 경우도 있다. Object Storage를 최대한 활용하는 회피 수단이 없진 않다. 그러나 NFS를 아예 안 쓰며 수평확장하기엔 고통이 많이 따를 수 있다. 이러한 경우라면 수평확장해서 얻는 성능 이점이 NFS의 저조한 IO 성능을 만회한다.

NFS는 DigitalOcean 같은 퍼블릭 클라우드에서 운영비용을 줄일 때도 도움이 된다. 모임에서 운영하는 Kubernetes 클러스터의 경우에는 CPU와 메모리가 다소 남는 상황이나 볼륨 제한 때문에 유휴 리소스를 제대로 활용하기 힘들다. Droplet(AWS의 EC2 인스턴스)에 달 수 있는 Block Storage의 최대 개수가 일곱 개에 불과(?)하기 때문이다. 볼륨을 더 달 수 있다면 유휴 리소스를 최대한 활용할 여지가 있다.

디지털오션의 Kubernetes(이하 DOKS)처럼 관리형 서비스인 경우 어느 정도는 커스터마이징에 제한을 받는다. 따라서 Rook Ceph 같이 Block Storage 서비스를 자체 운영하는 방식은 손을 많이 탄다. 미션크리티컬한 상황이 아니라면 NFS가 더 편리하고 효과적인 수단일 수 있다. Ceph에 비해선 NFS가 더 단순하고 이해하고 운영하기에 덜 복잡하기 때문이다.

어느 Provisioner를 선택해야 하나?

Rook은 Operator를 표방하니 운영 자동화의 도움을 좀더 받을 수 있으리라 기대하나 큰 차이라고 생각하진 않는다. 어느 쪽을 선택해도 문제가 없다

Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
0 0 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments