매직코드
반응형
article thumbnail
12. MLOps DVC를 이용한 데이터 관리
MLOps 2022. 3. 7. 10:28

Data Management 필요성 Raw Data를 처리하면서 다양한 시도들로 인해 Data의 버전이 많이 발생한다. 다양한 시도들을 하다보면 어떤 버전의 데이터를 사용해서 어떤 결과가 나왔는지 매칭하거나 관리하기 힘들어진다. 이를 관리하기 위하여 대부분의 사람들이 Git을 이용한다. 하지만 Git은 파일 크기에 제한이 있기 때문에 대용량 데이터를 관리하기에는 적합하지 않다. 대용량 데이터를 이용한 소스코드와 데이터를 같이 관리하기 위해서 DVC, Pachyderm, Delta Lake, Dolt 등의 툴이 생겼다. DVC Data Version Control의 약자다. 대부분의 스토리지와 호환 가능 (amazon s3, google drive...) 대부분의 git 호스팅 서버와 연동 가능 (GitH..

article thumbnail
11. 쿠버네티스 미니큐브로 간단한 실습 - Service
MLOps 2022. 3. 4. 10:15

쿠버네티스 안내서와 패스트캠퍼스 강의를 보고 작성한 포스팅입니다. Pod는 자체 IP를 가지고있고 클러스터 내부에서는 Pod IP를 통해 통신하고 접근할 수 있지만 두가지 단점이 있다. 첫번째로는 Pod가 쉽게 사라지고 생성되는 특징 때문에 직접 통신하고자 하는 Pod를 찾이 어렵다. 두번째로는 클러스터 외부에서 Pod에 접근할 수 없다는 점이다. 쿠버네티스는 Pod과 직접 통신하는 방법 대신 별도의 고정된 IP를 가진 "서비스"를 만들고 이 서비스를 통해 Pod에 접근하는 방식을 사용한다. 서비스는 노출 범위에 따라 CluterIP, NodePort, LoadBalancer 이렇게 3가지로 구분할 수 있다. 서비스 생성에 앞서서 디플로이먼트가 있어야하기 때문에 이전에 만들어두었던 파일을 통해 서비스 만..

article thumbnail
10. 쿠버네티스 미니큐브로 간단한 실습 - Deployment (MacOS)
MLOps 2022. 1. 21. 10:58

쿠버네티스 안내서와 패스트캠퍼스 강의를 보고 작성한 포스팅입니다. 쿠버네티스의 구조를 다시 한 번 살펴보자면 아래와 같이 컨테이너 < Pod < ReplicaSet < Deployment < Service 순서대로 각각을 감싸고 있다. 이번 실습에서는 Deployment를 생성하고 그 내부에 있는 ReplicaSet이나 Pod를 수정해본다. Deployment 만들기 이제는 별다른 설명 없이 코드만 봐도 어떤 느낌인지 감이 오기 시작했다. # 1. 도커실행 # 2. minikube 시작 minikube start cd Desktop/kube # 3. Deployment 생성 vi echo-dep.yml apiVersion: apps/v1 kind: Deployment metadata:# Deploymen..

article thumbnail
9. 쿠버네티스 미니큐브로 간단한 실습 - ReplicaSet (MacOS)
MLOps 2022. 1. 19. 10:37

쿠버네티스 안내서를 보고 작성한 포스팅입니다. Pod을 단독으로 만들면 Pod에 어떤 문제(서버가 죽어서 Pod이 사라졌다던가)가 생겼을 때 자동으로 복구되지 않는다. 이러한 Pod을 정해진 수만큼 복제하고 관리하는 것이 ReplicaSet이다. 이전 실습에서 pod와 minikube를 모두 삭제했기 때문에 실습환경을 다시 시작한다. # 1. 도커실행 # 2. 디렉토리 이동 cd Desktop/kube # 3. 미니큐브 실행 minikube start 이전에는 pod만 만들었다면 이번에는 replica set를 만들어보려고 한다. 컨테이너 하나 또는 두개 이상 포함하던게 pod이라면 이런 pod를 하나 또는 여러개 관리하는게 replica set이다. replica set은 spec: 부분에 replic..

article thumbnail
8. 쿠버네티스 미니큐브로 간단한 실습 - Pod (MacOS)
MLOps 2022. 1. 17. 11:04

쿠버네티스 안내서와 패스트캠퍼스 강의를 보고 작성한 포스팅입니다. Pod는 하나 또는 여러개의 컨테이너를 포함한 쿠버네티스에서 사용하는 가장 작은 단위다. 이번에는 Pod을 생성하는 실습을 진행한다. # 도커를 실행시키고 터미널에 명령어 입력 minikube start # 실습할 디렉토리로 이동 cd Desktop/kube Pod 생성 저번에는 만들어진 yaml 파일을 실행시키는 방법을 사용했었는데 이번에는 파일을 직접 만들어서 실행시켜보려고 한다. # pod.yaml 파일 생성 vi pod.yaml # pod.yaml 파일에 내용 작성 apiVersion: v1 kind: Pod metadata: name: echo labels: app: echo spec: containers: - name: app ..

article thumbnail
7. 쿠버네티스 미니큐브로 간단한 실습 (MacOS)
MLOps 2022. 1. 14. 15:14

쿠버네티스 안내서와 패스트캠퍼스 강의를 보고 작성한 포스팅입니다. 배포를 위한 yaml 파일 구조 확인 쿠바네티스를 컨테이너를 등록하고 관리하기 위해 pod이라는 오브젝트를 사용한다. 컨테이너 < pod < replica set < deployment 순으로 구성되어있음을 기억하면서 컨테이너 배포를 위한 pod을 생성해보자 apiVersion: v1# 쿠바네티스 리소스의 api 버전 kind: Pod# 쿠바네티스 리소스 이름 (내가 만들고자 하는것) metadata:# name, namespace, labels, annotations 등을 포함 name: hello labels: app: hello spec:# 가장 중요 리소스의 설정 정보 입력 containers:# 컨테이너에 대한 정보를 입력하겠다 ..

article thumbnail
6. 쿠버네티스 실습 환경 구축 (minikube, MacOS)
MLOps 2022. 1. 12. 13:11

쿠버네티스 설치 쿠버네티스 클러스터와 kubectl 설치해야한다. 쿠버네티스를 운영환경에 설치하기 위해선 최소 3대의 마스터 서버와 컨테이너 배포를 위한 n개의 노드서버가 필요하다. 그런데 배포 환경에 따라 설치하는 과정이 모두 다르기 때문에 쿠버네티스 실습 공부를 할 때는 간단하게 하나의 서버에 마스터와 노드를 설치하여 관리하는 방법을 사용한다. 쿠버네티스 개발 환경 구축 방법으로는 minikube, k3s, docker for desktop, kind가 있는데 minikube를 사용해본다. 실제 환경에서는 docker for desktop도 좋은 방법인데 CPU나 메모리를 많이 차지하기 때문에 실습을 할 때에는 껏다 켜기 쉬운 minikube를 이용하는 것이 좋다. 1. 도커 설치 docker des..

article thumbnail
5. 맥북에서 MLOps 환경 구축; 맥북에 도커 설치, 도커 실행
MLOps 2022. 1. 11. 15:54

맥북에 도커 설치 도커 홈페이지에 맥을 위한 도커 설치 방법이 잘 설명되어 있는데 영어로 되어있어서 열심히 읽어봐야한다. 도커 홈페이지를 통해 설치하는 방법을 설명하긴 하겠지만 맥을 통해 리눅스를 이용할 때에는 brew 명령어를 통해 도커를 설치하는게 더 호환이 잘 된다고 한다. 나도 카더라도 들은 이야기이니 너무 믿을건 못된다. 1. 홈페이지를 통해 도커 설치 https://docs.docker.com/desktop/mac/install/ Install Docker Desktop on Mac docs.docker.com 웬만하면 맥북에 인텔칩이 들어있을테니 인텔 맥북으로 설치 버튼을 누른다. 도커 설치프로그램인 Docker.dmg 파일이 다운로드 된다. 나는 맥을 사용한지 얼마 안되었는데 윈도우랑 다른..

article thumbnail
4. 쿠버네티스 입문하기
MLOps 2022. 1. 10. 10:50

유튜브 초보를 위한 쿠버네티스 안내서 영상 시리즈를 보고 정리한 포스팅입니다. 서버 관리의 진화 문서화를 잘 해보자 --> 실행하는 순서를 하나하나 설명하는 ppt 등으로 만들어서 보관 문서보다는 코드를 직접 받아와서 관리해보자 --> CHEF, puppet, ANSIBLE 등의 프로그램 사용 but 하나의 서버에서 여러 버전을 돌리기 힘들었음 그럼 가상머신을 통해서 하나의 프로그램만 실행해보자 --> Oracle VirtualBox 사용 but 하나의 프로그램만 실행 가능하다. 다른 클라우드를 사용하려면 어려움이 있음, 느림 그래서 도커 등장! --> 모든 실행환경을 컨테이너로 묶어서 어디서든 쉽게 실행시킬 수 있음 컨테이너의 특징 가상머신과 비교하여 컨테이너 생성이 쉽고 효율적 언어나 프레임워크에 상..

article thumbnail
3. MLOps와 쿠버네티스(Kubernetes)
MLOps 2022. 1. 5. 14:22

MLOps를 잘 이용하려면 서로 사용하는 작업 환경에서 동일한 실행 환경을 보장해야하고, 다수의 개발자가 소수의 클러스터를 공유하면서 사용, 삭제, 업데이트 등의 혼란이 이루어지지 않도록 하기위해 컨테이너와 컨테이너 오케스트레이션 시스템이 등장했다. 컨테이너란? 마이크로소프트에서는 컨테이너를 애플리케이션의 표준화된 이식 가능한 패키징이라고 정의한다. 머신러닝 모델들은 운영체계나 파이썬 실행환경, 패키지 버전 등에 따라 다르게 동작할 수 있다. 이를 방지하기 위해 머신러닝에 사용된 소스코드와 함께 종속적인 실행 환경 전체를 하나로 묶어서(패키징해서) 공유하고 실행하는 기술을 컨테이너라이제이션(Containerization)이라고 한다. 컨테이너를 공유함으로써 사용자들은 어떤 시스템에서든지 같은 실행 결과를..

반응형