7de4f27fb0806df023e882e3469c706fe54494db08d1db4ff60695be86c99bd3101194de86a8813da06fc1ea32323b8d676d11460c


되게 당연한 말이지만 최근 뻘짓들로 한번더 느껴서 적어보는 뻘글 

언어에 관련된 이야기로도 해석가능하지만, 인프라랑 관련된 경험담임

---

최근 “컨테이너가 슬슬 늘어나는데 컴포즈 그만쓰고 쿠베로 옮길겸 공부하면서 쿠버네티스나 한번 직접 구성해볼까?” 란 막연한 생각에 ARM 으로 만들어진 클라우드 인스턴스에 쿠버네티스 클러스터를 구성하고 이거저거 해보고잇음

이러면서 좀 짜잘한 일들을 많이 맞이하게 되엇고, 그 심정을 한줄요약한게 딱 이 글의 제목임 

---

첫번째로 로드밸런서임

쿠버네티스 클러스터를 매니지드 클러스터 서비스를 사용하지 않고 처음부터 구성하다보니 일단 이거부터 내가 직접 해야햇엇음

나같은 경우 베어메탈에 많이 사용하는 MetalLB 를 썻음

그런데 이게 VIP 를 만드는 방식으로 돌아가면서 ARP 나 BGP 같은 것도 건드리는데 클라우드 인스턴스에선 내가 네트워크 트래픽을 완전히 통제할수도 없어서 저런 개념부터 하나하나 공부해보고 잇음, 그리고 뒤로 더 파보니 CNI 라는게 나오고...

-

두번째는 스토리지임


LB 구성을 어찌저찌 마무리하고, 도커 컴포즈로 딸깍딸깍 해서 쓰던 메시지 브로커도 클러스터에 배포하고자 시도해봄

공식문서를 보니 쿠버네티스에 베포하는거도 helm 으로 딸깍딸깍 할수잇게 구성해놔서 그렇게 어렵지 않을거라 생각햇엇음

그런데 메타데이터를 저장하는 postgresql 기반으로 만들어진 파드가 만들어지질 않는거임

이유를 모르겟어서 그 브로커에서 운용하는 커뮤니티 디코채널에 헬프콜을 쳣더니, “혹시 스토리지 설정은 어떻게 되어잇음? 기본적으로 우리가 만든 helm 차트는 너 클러스터의 storageclass 를 사용해서 구성을 하고잇고 dynamic pv provisioning 을 지원해야함” 이라는 답변을 받음

도커 컴포즈에서 volumes 에다가 그냥 몇줄 적어놓고 짠 하던게 끝이라 그거도 또 알아보니 OpenEBS, LongHorn 같은게 또 나오고 이거도 마찬가지로 뒤로 파보니 CSI 라는 게 튀어나옴...

---

결국 어찌저찌 돌아는 가고잇음


회사에서 일할땐 SWE 롤로 일햇다 보니 쿠버네티스 클러스터나 로드밸런서 같은 인프라는 SRE/DevOps 같은 직군들이 해준걸 갖다쓰기만 햇음.

내가 직접 해봐야 어플리케이션 로드밸런서 정도를 AWS GUI 콘솔에서 딸깍딸깍 해서 쓰던게 끝. 

그 외 인프라, 예를들면 DB, 브로커도 그냥 아마존에 잇는걸 사서 씀. 

그런데 이걸 한땀한땀 직접 구상하다보니 “모르면 맞아야지” 처럼 위에 잇는 별의별 상황을 다겪어보고 잇고, 두가지 교훈을 얻음.

-

일단 실사용이나 프로덕션을 한다면 매니지드 서비스.

시간이 흐르고 대부분의 요소들이 *aaS 화가 되면서 추상화가 되다보니, 인건비가 결국 제일 비싸서 저런걸 돈주고 사서썻던 회사에선 전혀 경험 못해볼(?) 일들을 강제로 경험하고 잇음.

“아무리 인프라 비용 비싸봐야 그게 직접 하는거보단 싸다” 라는 익히 하는 말, 회사 다닐땐 그게 추상적으로만 체감이 됏는데 직접 하다보니 확실히 더 체감이 됨.

회사 규모가 엄청 커서 비용문제가 발생하거나 아니면 따라야 하는 규제가 잇거나 해서 자체적인 데이터센터나 서버를 구축해야할 정도가 아닌이상 그냥 매니지드 쓰는게 최고라는걸 확실히 체감함.  


그런데 공부를 하고싶다면 언매니지드 서비스. 

그 추상화 속으로 직접 들어가서 어떤 시스템이 무엇을 기반으로 돌아가는지를 파악하는 과정에서 얻어가거나 다시한번 돌아보게 된 지식들이 많음.

꾸역꾸역 보면서 한번보고 유기햇던 각 분야별 전공서적을 다시 읽으면 “아 이게 여기서 이렇게 쓰엿던 이거구나” 하면서 재미잇게 읽을수 잇겟단 생각도 들엇음. 다시 학생이 된만큼 그렇게 다시 공부해볼 예정이고. 

---

뻘글 끗