반응형

전체 글 61

[북 리뷰] 쿠브플로 운영 가이드

책을 고른 이유 데이터 사이언티스트들이 모델을 만들고 거기서 만들어진 모델을 서빙하는 플랫폼을 개발하는 일을 하면서 쿠브플로우를 사용해왔다.(아니 정확히는 모델 서빙용 구성요소인 KFServing만을 사용해왔다.) 다큐멘트를 뒤적거려서, 깃허브 이슈들을 뒤적거리면서 문제들을 해결하면서 버텨왔지만 항상 그렇듯이 내가 이해한 바가 맞는지, 이상적인 방식이 있는지는 궁금했다. 그래서 쿠브플로우 운영 가이드라는 책 제목을 봤을 때 선택하기 까지는 불과 몇초가 걸리지 않았다. 쿠브플로우에 대해서 머신러닝 모델링, 성능 좋은 모델 이후에 뭔가가 더 필요하다는 사실은 이제 모두가 알게 되었고 그래서 MLOps라는 단어가 화두가 되어가고 있는 것 같다. 쿠브플로우는 그 중에서도 화제가 되고 있는, “확장 가능하고, 포..

Book 2022.02.12

이미지 예측 모델을 쿠버네티스에 배포하기 A to Z (Kubernetes Kubeflow KFServing InferenceService Custom Image)

글 작성일 : 2020.11.18 Kubeflow KFServing InferenceService의 Custom Image를 쓰는 이유와 다른 점 이번 글은 이미지 예측 모델을 Kuberentes에 배포해서 이미지를 업로드 하고 예측 결과와 그 확률을 받아보는 구조를 만드는 내용이다. KFServing InferenceService Custom Image 사용자 이미지를 이용해서 Kubernetes에서의 서빙을 해본다. 전 글에서 포스팅 한 내용은 사용자가 KFServing InferenceService 매니페스트에 Tensorflow pb파일의 경로를 지정해주면 KFServing에서 알아서 Tensorflow Serving을 사용해서 배포를 해주는 구조였다. 하지만 Custom Image를 사용하면 유..

MLOps 2022.01.05

CKA 합격 후기 및 준비하는 법 공유

글 작성일: 2021.12.07 TL; DR Certified Kubernetes Administrator (CKA) with Practice Tests 강의 두번 반복 Kubernetes Documentation을 참고하면서 문제를 푸는 데 익숙해지자. 크롬, 비발디 브라우저와 북마크를 미리 준비해두자. 2021년이 되면서 세운 목표 중의 하나가 CKA, Certified Kubernetes Administrator 자격증을 따는 것이었으나 바쁜 업무를 핑계로 차일피일 미루고만 있었다. 매년 그렇지만 연말이 다가오면 게을러지고 공부하기가 싫어지는데 목표 달성을 위해 결국 꾸역꾸역 시험을 등록하고 말았다. CKA 시험권은 Linux Foundation의 Cybermonday 할인행사 때 싸게 사두었기 때..

Kubernetes 2022.01.05

IP로 Harbor HTTPS Access 가능하게 설정하며 과정 다시 되짚어보기

글 작성일: 2021.10.31 현재 서비스의 도커이미지 보관용 Private container registry로 Harbor를 사용하는 중이다. Harbor를 Kubernetes에 구축하거나 Docker-compose를 사용해서 단독으로 구축을 하는 등 여러 케이스에 대응을 해야 하는 상황이다. IP로 바로 접근할 수 있게 등록하는 것도 한 과정이다. 이미지를 pull이나 push등의 동작을 하는 데 있어서 Docker는 기본적으로 HTTPS 프로토콜을 사용한다. HTTP를 사용하고 클라이언트의 docker daemon 설정에 insecure-registries 옵션을 주면 HTTPS를 사용하지 않아도 된다. 그러나 이는 임시방편에 불과하며 그런 상황은 한정적일 것이다. 그래서 Harbor docume..

IT 2022.01.05

Locust를 이용해서 부하 테스트를 해 본 후기

글 작성일: 2021.10.03 쿠버네티스에서 올라가 있는 application pod에서 사용하고 있는 sidecar의 요구 자원을 줄일 수 있는 지 확인하기 위해서 해당 Pod에 부하를 걸어 볼 필요성이 생겼다. sidecar에 기본 설정된 CPU limits Core가 높게 설정되어 있는데, 만들고 있는 application의 ui에서 해당 네임스페이스의 limits를 기반으로 모델 배포관리를 하기 때문에 이런 상황이 된 것이다. 이 떄문에 부하 테스트 도구를 찾아보게 되었다. Locust, JMeter, LoadRunner, SilkPerformer 등의 이름이 보였고 제각기 장단점이 있겠지만 그 중 Locust를 골랐다. Locust의 장점은 다음과 같다. 시나리오를 파이썬 스크립트로 작성할 수..

IT 2022.01.05

serverless framework를 사용해서 AWS Lambda로 crawling을 테스트해본 후기 (crawling test using serverless framework)

글 작성일: 2021.07.10 Serverless Framework란 무엇인가? "zero-friction serverless development. easily build apps that auto-scale on low cost, next-gen cloud infrastructure." 공식 홈페이지에 들어가면 이런 소개를 볼 수 있다. Serverless Framework 는 서버리스 어플리케이션을 구성할 때 배포와 관리를 쉽게 할 수 있도록 도와주는 도구이다. 보통 생각하게 되는 서버리스라면 퍼블릭 클라우드 3사의 제품들을 생각하게 될텐데 AWS는 Lambda, GCP라면 Cloud Functions, Azure에는 Functions가 그것들이다. Serverless Framework의 장점은?..

Cloud 2022.01.05

쿠버네티스에서 Ceph dashboard, CephFS 설치해 본 후기 (Ceph dashboard, CephFS on Kubernetes)

글 작성일: 2021.05.30 사전 정보 Ceph Dashboard Ceph Cluster의 상태를 모니터링하기 위해 Ceph Dashboard를 설치하면 아래와 같이 Ceph 클러스터의 상태를 한 눈에 보면서 관리 기능을 사용할 수 있다. CephFS Ceph shared file system을 이용하면 여러 Pod에 동시에 마운트해서 파일을 공유할 수 있도록 할 수 있다. 기존에 NFS 서버를 구축해서 PVC 형태로 Pod에 마운트해서 사용할 때는 동시에 다른 Pod에 마운트할 수가 없어서 불편했는데 Ceph shared file system을 사용하면 이런 부분이 해결된다. 준비물 쿠버네티스에 설치된 Rook Ceph Cluster- 전 글 참조 - Ceph를 쿠버네티스에 설치해서 Object S..

Kubernetes 2022.01.05

Ceph를 쿠버네티스에 설치해서 Object Storage로 사용하는 방법 (install ceph object storage on kubernetes)

글 작성일: 2021.05.01 사전 정보 왜 Ceph를 설치하게 되었나? 쿠버네티스에서 머신러닝 모델과 도커 이미지들을 관리할 수 있는 stateful 한 공간이 필요했다. 만약 GKE나 EKS 같이 퍼블릭 클라우드의 Managed Kuberenetes만 사용한다면 좀 더 선택지가 많겠지만 나는 On-premise에 쿠버네티스 클러스터를 설치하는 경우까지 고려해야 했다. S3 API를 사용할 수 있는 확장 가능한 S3 Compatible Object Storage는 MinIO도 좋은 선택지였겠지만 라이센스 문제가 있었다. (MinIO 설치에 대한 이전 글) 그래서 Ceph를 쿠버네티스에 설치하고 Harbor의 백엔드로 사용하려고 한다. (MinIO로 Harbor의 백엔드를 연동하는 이전 글) 쿠버네티스..

Storage 2022.01.05

프라이빗 레지스트리 Harbor에 MinIO를 백엔드 스토리지로 설치하고 사용하는 방법 (private registry Harbor, backend as MinIO - install guide on GCP)

글 작성일: 2021.02.07 사전 정보 왜 Harbor를 고려하게 되었나? "폐쇄된 On-premise 환경에서도 사용할 수 있고 독자적으로 관리하는 Private Container Registry가 필요했다." 통합적으로 머신러닝/딥러닝 모델들을 관리할 수 있는 공간을 마련하는 중이고, KFServing에 바로 S3 호환 endpoint를 제공할 수 있는 오브젝트 스토리지가 필요해서 MinIO를 갖고 왔었다. MinIO 설치에 관한 이전 글 참조 KFServing은 모델이 들어가서 inference를 할 수 있는 런타임과 로직이 담긴 소스가 있는 컨테이너 이미지가 필요하므로 컨테이너 레지스트리가 필요하고, 또한 여러 중요 정보들이 담긴 컨테이너들을 Public 이 아닌, 독자적인 공간에 올릴 수 ..

Storage 2022.01.05
반응형