Search

부동산으로 배우는(?) PV-PVC(feat. eraser.io)

어느 날 쿠버네티스 커뮤니티 카톡방에 이런 메세지가 올라왔다
pv는 집 pvc는 분양권 container는 세입자 storageclass는 건설사
RWO는 1주택 1가구 RWX는 1주택 다가구 정도...?
너무 감동적이니 (익명처리) 원본으로도 보자
컨텍스트를 좀 더 전달하면, 위에 답변 원본에서 살짝 볼 수 있듯, 다른 사용자가 pv, pvc 개념이 어렵다고 말하셔서 나온 답변이다. 나도 따봉을 찍었고 이후에도 수 많은 찬사가 쏟아졌다.
그래서 한번 그려보기로 했다.
그리고 나니 되려 아는 사람들만 금방 이해할만한 비유였나? 이런 생각도 들었다. 기본적인 설명이 없으면 아쉬우니 짧게 정리해본다:
 PV(Persistent Volume): 파드 내 컨테이너가 사용할 수 있는 물리 스토리지. 파드(컨테이너)가 세입자 일 때 들어가 살 수 있는 공간, 집에 비유했다.
 PVC(Persistent Volume Claim): 파드 내 컨테이너가 스토리지(PV)를 마운트하게 되는 구성. 집에 대한 실질적인 권리에 해당하는 분양권에 비유했다.
파드에선 PVC를 참조하고 PVC는 PV를 참조하여(bind), 결국에 파드에서 PV 즉, 스토리지를 사용할 수 있다.
 SC(Storage Class): PV를 요청(PVC)에 따라 동적으로 찍어내는(dynamic provisioning) 클래스이다. 스토리지라는 집을 만드는 건설사에 비유했다.
SC의 실질적인 구현이자 서드파티인 프로비저너(provisioner)는 브랜드 건설사라고 할 수 있다
어쩐지 사전청약?(PVC) 같은 현실이 떠 오른다…
이어서 읽기 또는 쓰기에 대해 얼마나 많은 “노드”에서 접근이 가능한가에 대한 접근 모드(Access modes)에 대한 비유다.
 RWO(ReadWriteOnce): 볼륨이 한 노드에만 마운트 될 수 있다. 한 집(PV)에 한 식구(노드)가 사는 1주택 1가구에 비유했다.
RWX(ReadWriteMany): 볼륨이 여러 노드에 마운트 될 수 있다. 한 집에 여러 식구가 사는 1주택 다가구에 비유했다.
사실 처음에 노드를 파드라고 잘못 알고 있었다. 정리하며 찾아보니 노드란 사실을 알았고 세입자(파드)이자 세대원이 모여 가족(노드)가 된다니 크~ 역시 이미 관통해버린 비유였다.
앞서 말한 듯, “이 비유, 내가 알고 있어서 재밌는거 아냐?” 했지만, 처음 개념을 잡을 때 도움이 되길 바라는 마음이 든다. 나도 정리하며 놓칠뻔한 중요한 사실을 다시금 알게 됐다 .

eraser.io

위 그림들은 eraser.io라는 서비스로 만들었다. Diagram as a Code를 지향하는 서비스이다. 에디터가 VSCode이기도 하고 문법이 어렵지 않아 금방 배울 수 있다.다만 원하는데에 배치를 못한다.
여기에 GPT를 달은 DiagramGPT라는 서비스도 있다. 위 카톡 메세지를 그대로 프롬프트로 주었더니…
각 역할을 엔티티로 하여 ERD를 그려 버렸다. pk를 보면… 아니 너 왜 그래? 집에선 안 이러는 애가…? (실제로 프롬프트가 원하던게 ERD가 아니라 생각했는데 ERD로 꽤 잘 그리는 경우는 많다). 그래도 추천한 아이콘은 잘 써먹었다.
이번엔 diagram type만 Cloud architecture로 강제했을 때 그려준 그림이다. 귀엽다 ㅎ
역시 아이콘 고르는 것은 기가막히게 잘한다. 직접 코딩하다 보면 아이콘 찾는게 은근히 시간이 오래걸린다. 그림 자체는 바로 써먹을 수준은 아니지만 아이콘 고르기와 전체적인 큰 그림, 아이디어는 참고하는걸로 쓸 수 있을거 같다.
요즘은 그림을 그려 남들을 이해시키고 소통하고 피드백 받는게 재밌다. 아무튼 그림 잘 그리고 싶다!!