전체 글
-
Kubernetes 와 데이터베이스Kubernetes 2025. 3. 13. 18:27
Kubernetes 와 데이터베이스Kubernetes 세상에서 꺼지지 않는 떡밥이 몇개 있다. kubectl 발음하는 방법부터, 네임스페이스 어떻게 나눠서 써요? 까지. 이러한 떡밥들 중 모두의 호기심을 자극은 하면서도 적극적으로 탐구되지 않는 요소 중 하나가 바로 "DB K8s 위에 올리는거 어때요?" 다. 다들 각자의 의견이 있지만 대체로 의견은 전부 "하지 마세요"다.다만 궁금한건 "왜?" 이다.왜 다들 K8s 위에 DB 를 올리는걸 추천하지 않을까? 정답은 K8s 사용자 수 만큼이나 많겠지만, 그 중 한가지 답변을 정리해보고자 한다.언제 이런 고민을 할까?DB 를 K8s 위에 띄우는건 꾸준한 수요가 있긴 하지만 사실 흔하게 하는 고민이 아니기도 하다.경험적으로는 보통 다음 경우 중 한가지가 아닐까..
-
Intel MKL 과 함께 HF candle 빠르게 만들기[개발기] Kuberian 2023. 8. 15. 18:41
배경설명 이전 프로젝트 이후 바이너리 사이즈는 총 150 MB 내외로 흡족하게 줄였다 콜드부트 타임이 기존 30초 에서 2초로 확 줄었다. 하지만 연산속도는 의외로 느린것으로 판별되었다. BERT, 150 토큰으로 고정시 libtorch /dev/null && \ echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | \ sudo tee /etc/apt/sources.list.d/oneAPI.list RUN apt update # for builder RUN apt install -y intel-oneapi-mkl-devel # for runtime en..
-
HuggingFace Candle 로 Inference Service 바이너리 크기 줄이기[개발기] Kuberian 2023. 8. 15. 18:41
배경설명 Kuberian 의 Backend API 는 Cloud Run 환경에서 구동된다 Kuberian 의 컨테이너 크기는 약 800MB 정도이다. rust-bert 프로젝트를 사용하고 있는데, libtorch 에 대한 의존성이 있으며 x86 환경에서 이 .so 파일의 크기가 700MB 정도 한다. 하는거라고는 all-minilm-l6-v2 모델 한번 forward 하는것 밖에 없는데 700MB 는 과하다. Registry 저장소 공간 먹어서 돈 많이나가고, cold start 타임이 30초 정도 걸리는건 둘째치고, 빌드타임도 오래걸린다. 그리고 이 프로젝트는 별도의 DB 가 없는게 미덕이다. 앞으로 1GB 정도는 DB 공간으로 활용하게 될텐데 잘 사용하지도 않을 lib 따위에 700MB 씩이나 쓰는것..
-
원리부터 파악하는 컨테이너 이미지 PULL (w/ curl)Kubernetes 2023. 6. 30. 09:00
시작 전 잡담 - 1 본래 프로젝트 라이프사이클 관점에서의 개발 방법론에 대한 글을 쓰고 싶었지만 현재 진행하고 있는 강의에 대한 홍보글 겸 겸사겸사 적어본다. (많은 관심 부탁드립니다~~) 이 내용은 실제 강의에서 다뤘던 내용을 기반으로 한다. 시작 전 잡담 - 2 이 내용은 단순히 도커의 작동 원리 측면에서 이해가 아닌, 시스템 아키텍처의 하나의 사례로 읽어보면 꽤 흥미롭다. 적어도 개인적으로는 그랬다. 전 세계에서 넷플릭스 다음으로 많은 트래픽을 처리하고 있을(어쩌면 넷플릭스보다 많을지도 모른다) Docker Hub의 구조가 궁금하지 않은가? 필자는 이 기사를 보고 질문을 떠올렸고, 이 글은 이 질문에 대한 그 내용을 요약한 것이다. 서론 정말 감사하게도 docker pull 이라는 명령어를 쓰면 ..
-
[Kubernetes] Controlplane 죽이기Kubernetes 2023. 6. 26. 14:48
서론 Kubernetes는 실제 사용자들의 Workload를 실행시키는 Data Plane와, 클러스터 전체를 관리하는 Control Plane 두가지의 추상화된 개념이 존재한다. Control Plane 은 대개 kube-apiserver, etcd (및 이 둘을 사용하는 기타 등등)으로 구성되어 있고 Control Plane 에서 문제가 발생한다면 이 둘의 리소스 관리에 문제가 있을 가능성이 높다. 이 두 가지에 대해서 간단히 소개해보면 kube-apiserver는 api 서버이다. HTTP(S) 로 yaml,json,protobuf 등의 형식으로 외부 클라이언트 (e.g., kube-controller-manager, kubelet, kubectl 등등등...) 들과 통신하며 RESTful 한 설계..