Processing math: 100%
본문 바로가기

Data science/MLOps21

StepbyStep Github action으로 CD/CI 배포하기 (예제코드 포함) 이 포스팅은 GitHub Actions를 사용하여 이미지를 생성하고, Amazon Elastic Container Registry (ECR)에 업로드한 후, EC2 인스턴스에 배포하는 단계를 설명합니다. 이 과정은 크게 아래와 같이 이루어집니다. 개발자가 trigger: 개발자가 github에 코드를 commit / push 등 엑션을 하하고, 리포지토리에서 action trigger가 실행 Action에서 이미지 빌딩 및 푸시: github action에서 이미지 빌드: Dockerfile을 이용하여 이미지를 만들고, 만든 이미지를 ECR에 PUSH Actiond에서 SSH 접속 후 Pull 및 Run: Action에서 EC2인스턴스에 SSH로 접속하여, ECR에 올려져있는 이미지를 PULL 및 RUN.. 2023. 7. 31.
클러스터 구성 / 쿠버네티스 설치(master, worker node) 요약 master node에 쿠버네티스를 세팅하고, 각 노드랑 연결해보려고합니다. 쿠버네티스로 클러스터를 구성하는 것은 1) control-plane을 설치해야합니다(단일 control-plane또는 복수의 control-plane도 가능), 2) 또한, 각 워커노드들을 등로갛여 파드들의 네트웍이 클러스터내에서 잘 통신되게 하는 것입니다. 시작전에 앞서 kubeadm을 이용해서 쿠버네티스를 세팅해보려고합니다. kubeadm으로 쿠버네티스를 세팅하는 것이 쿠버네티스 공식홈페이지에서도 "best practice"라고 설명되어있습니다. kubeadm은 쿠버네티스를 간단히 설치해서 사용해보기에 용이합니다. 사용 전 확인사항 쿠버네티스를 사용하기전에 장치에 아래의 스펙요구사항을 만족하는지 확인해야합니다. A co.. 2023. 1. 8.
도커 이미지에서 딥러닝 GPU가속 사용하기 딥러닝을 이용한 서비스를 배포할 목적이 있으면, 운영체제 등에서 독립적으로 S/W가 돌아갈 수 있게끔 배포하는 것이 중요하다. 이 때 주로쓰이는 것이 컨테이너 기술인데, 컨테이너 기술을 이용해서, 딥러닝의 GPU가속을 사용해보자. 단계는 아래와 같다 NVIDA driver (그레픽 드라이버) 와 docker은 설치 CUDA 이미지 풀하기 GPU 지원 컨테이너 만들기 방법 1: Native GPU support 방법 2: Nivida container Runtime을 이용하기 방법 3: Nivida GPus 을 위한 도커엔진 유틸리티 이용하기 확인: GPU 지원 컨테이너 내 접속 후 cuda확인 0. NVIDIA driver 확인 이미 설치된 경우, 다음의 코드로 CUDA Version을 확인한다.아래와 .. 2022. 12. 17.
도커 이미지 푸시하기 0. PUSH할 원격저장소를 만든다. docker hub (https://hub.docker.com/) 에서 로그인 후, 원격저장소를 생성한다. github저장소처럼 "ID/원격저장소명"으로 주소가 만들어진다. 1. 도커 로그인 $ docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username: [YourID] Password: ****** Login Succeeded 2. Docker hub에 올릴 이미지를 찾는다. 여기서 필자는 REPOSITOY에 simple-.. 2022. 12. 12.
서비스(Service) 이용하기, 클러스터IP에 접속이 안될 때, 요약 쿠버네티스를 이용하면,파드를 통해 클라이언트들이 어플리케이션을 호출할 수 있다. 그러나, 클라이언트 입장에서는 각각 파드의 주소가 존재하는하고, 클라이언트는 어느 파드로 갈지 명시하지 않았는데도, 쿠버네티스가 알아서 각각의 파드가 처리하게 만들어준다. 즉, 네트워킹이 쿠버네티스에 의해서, 알아서 처리되는데, 이 네트워크 서비스를 제공할 수 있는 자원이 "서비스(Service)"이다. 즉, 파드로 실행중인 앱을 네트워크서비스로 노출하게 해주는 자원이다. 서비스를 이용하기위해 각 파드, 노드가 만족해야할 사항1 각 파드는 노드상의 모든 파드와 통신할 수 있어야함 노드상의 에이전트(데몬, kubelet)은 해당 노드의 모든 파드와 통신할 수 있어야함. 어플리케이션을 네트워크 서비스로 외부에 노출하기 .. 2022. 12. 10.
MLOps()1 MLOps workflow에 대한 기본 이해 해당 책은 아래와 같은 구성으로 이뤄져 있다. 해당 포스팅은 Section 1을 다룬다. Fundamentals of an MLOps Workflow 3 Characterizing Your Machine Learning Problem 27 Code Meets Data 51 Machine Learning Pipelines 79 Model Evaluation and Packaging 103 Deploying Machine Learning Models at Scale 133 Key Principles for Deploying Your ML System 135 Building Robust CICD Pipelines 165 APIs and Microservice Management 191 Testing and S.. 2022. 11. 5.