반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- level 1
- 언어모델
- 데이터분석전문가
- Ai
- ADsP
- bigquery
- 데이터분석준전문가
- SQL
- 자연어처리
- docker
- gnn
- 인공지능
- 프로그래머스
- MLOps
- nlp
- MYSQL
- SQLP
- 통계방법론
- Level 2
- 코딩테스트
- 포아송분포
- 통계학입문
- 프레임워크
- SQLD
- Kubernetes
- ML Ops
- CS224W
- LLM
- RNN
- 머신러닝
Archives
- Today
- Total
코드 깎는 PM
MLOps Series #2 - Kubernetes/Minikube 본문
반응형
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
링크: "https://link.coupang.com/a/bqfD0v
MLOps 도입 가이드:기업에서 머신러닝 모델을 가장 효율적으로 운영하는 방법
COUPANG
www.coupang.com
1. Kubernetes
1) 쿠버네티스란?
출처: https://kubernetes.io/docs/concepts/overview/components/
쿠버네티스는 컨테이너 런타임(Docker)을 통해 컨테이너 오케스트레이션을 하는 도구이다. 쿠버네티스의 대표적인 특성은 아래와 같다.
- Reproducibility (재생산성): 실행 환경의 일관성 & 독립성
- Job scheduling (일정 스케쥴링): 스케줄 관리, 병렬 작업 관리, 유휴 자원 관리
- Auto-healing & Auto-scaling: 장애 대응, 트래픽 대응
2) 쿠버네티스를 제공하는 서비스
ML 서비스를 제공하는 기업들은 각기 쿠버네티스를 관리할 수 있는 SaaS 서비스들을 제공한다. 대표적으로 Amazon, Google, Azure에서 제공하는 서비스를 확인하면 아래와 같다.
- Amazon - Amazon EKS
- Google - Google Kubernetes Engine
- Azure - Azure Kubernetes Service (AKS)
3) 쿠버네티스 구조도
(1) Pod 란?
- Pod(파드)는 쿠버네티스에서 생성하고 관리할 수 있는 배포 가능한 가장 작은 컴퓨팅 단위이다.
- Pod는 Stateless 한 특징을 지니고 있다. 때문에 실행시마다 새로운 IP를 할당받으며, 언제든지 삭제될 수 있는 자원이다.
- 쿠버네티스는 Pod 단위로 스케줄링, 로드밸런싱, 스케일링 등의 관리 작업을 수행한다. 즉, 쿠버네티스 상에서 어플리케이션을 배포하는 경우 Pod 단위로 구성해야 한다는 것을 의미한다.
- Pod는 Containner를 감싼 개념이라고 말할 수 있다.
- 하나의 Pod 는 한 개 이상의 Container로 이루어진다.
- Pod 내부에서 여러 Container들은 서로 자원을 공유한다.
(2) Deployment 란?
- Deployment(디플로이먼트)는 Pod와 Replicaset을 관리를 제공하는 단위이다.
- Deployment는 Self-healing, Scaling, Rollout(무중단 업데이트)의 기능을 담당한다.
- Deployment 는 Pod을 감싼 개념이라 말할 수 있다.
- Pod 을 Deployment 로 배포함으로써 여러 개로 복제된 Pod, 여러 버전의 Pod 을 안전하게 관리할 수 있다.
(3) Service 란?
- Service 는 쿠버네티스에 배포한 애플리케이션(Pod)을 외부에서 쉽게 접근할 수 있도록 추상화한 리소스이다.
- Service 는 고정된 IP 를 가지며, Service 는 하나 이상의 Pod 과 매칭된다.
- Pod의 IP가 아닌 Service를 통해서 접근하는 이유는 Pod이 재생성될 때마다 IP를 새로할당 받기 때문에 고정된 IP를 통해 외부에서 쉽게 접근하기 위해서이다.
- 때문에 Service의 주소로 접근하는 것은 실제로는 Service 에 매칭된 Pod 에 접속하는 것이다.
(4) PV/PVC란?
- PV/PVC는 stateless 한 Pod에 영구적으로(persistent) 데이터를 보존하기 위해 사용하는 리소스이다.
- PV = Persistent Volume
- PV 는 관리자가 생성한 실제 저장 공간의 정보를 담고 있다.
- PVC = Persistent Volume Claim
- PVC 는 사용자가 요청한 저장 공간의 스펙 정보를 담고 있다.
- PV = Persistent Volume
- Docker상에서의 Docker Volume과 같은 역할을 한다.
- Pod의 Stateless한 특성으로 인해 Pod내부에서 작성한 데이터는 기본적으로 언제든지 사라질 수 있다. 때문에 보존할 데이터를 Pod 에 PVC 를 mount 하는 방식으로 저장하여 사용하며, PVC를 사용하면 여러 pod 간의 data 공유 또한 가능하다.
2. Minikube 실습
1) Minikube 기본 명령어
# minikube 설치
$ curl -LO https://storage.googleapis.com/minikube/releases/v1.22.0/minikube-linux-amd64
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube
# minikube 도움말 확인
$ minikube --help
# minikube 버전 확인
$ minikube version
# kubectl 다운로드
$ curl -LO https://dl.k8s.io/release/v1.22.1/bin/linux/amd64/kubectl
# kubectl 바이너리를 사용할 수 있도록 권한과 위치를 변경
$ sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
# docker driver를 기반을 minikube 실행
$ minikube start --driver=docker
# minikube 정상작동 확인
$ minikube status
# kubectl을 활용하여 minikube내 default pod생성 여부 확인
$ kubectl get pod -n kube-system
# minikube 삭제
$ minikube delete
Reference:
https://kubernetes.io/ko/docs/concepts/workloads/pods/
https://kubernetes.io/ko/docs/concepts/services-networking/service/
https://kubernetes.io/ko/docs/concepts/workloads/controllers/deployment/
반응형
'ML Ops > ML Ops Basic' 카테고리의 다른 글
MLOps Series #6 - Kubeflow (쿠버네티스 ML Ops 플랫폼) (0) | 2023.01.28 |
---|---|
MLOps Series #5 - Model Monitoring (모델 모니터링) (0) | 2023.01.28 |
MLOps Series #4 - Model Serving (모델 서빙) (0) | 2023.01.28 |
MLOps Series #3 - mlflow (0) | 2023.01.22 |
MLOps Series #1 - Ubuntu/Docker (0) | 2023.01.17 |
Comments