본문 바로가기

Develop/DevOps

[MLOps] 주로 사용되는 툴 및 패키지 정리

반응형

Helm

강의 토대로 내용을 가져오자면...

쿠버네티스 모듈의 Package Managing Tool

  • Ubuntu OS의 패키지 관리 도구 apt, Mac OS의 패키지 관리 도구 brew, Python 패키지 관리 도구 pip 와 비슷한 역할

하나의 쿠버네티스 모듈은 다수의 리소스들을 포함하고 있는 경우가 많다

  • 즉, a.yaml, b.yaml, c.yaml 등 많은 수의 쿠버네티스 리소스 파일들을 모두 관리해야 하기에 버전 관리, 환경별 리소스 파일 관리 등이 어렵다
  • Helm은 이러한 작업을 템플릿화 시켜서 많은 수의 리소스들을 마치 하나의 리소스처럼 관리할 수 있게 도와주는 도구
  • Helm manifest는 크게 Templates 와 values.yaml로 이루어져 있고, templates폴더에는 해당 모듈에서 관리하는 모든 쿠버네티스 리소스들의 템플릿 파일이 보관됨
  • 또한 values.yaml이라는 인터페이스로부터 사용자에게 값을 입력받아 Templates의 정보와 merge하여 배포됨

Docker

환경구성 컨테이너화, 간단하게 이해하자면 우리가 흔희 사용하는 VMWare로 이해하면 될듯하다. 다만 구조가 다를뿐...!

Virtual Machines보다 장점은 가벼운 용량 및 용이성(쉽게 containers정보를 가져올수가 있고, 만들수가있다)

왼쪽이 VMware구조, 오른쪽이 Docker구조

Kubernetes

Containers Orchestration도구중 하나로 Docker에서 만들어진 Container들을 쉽게 관리할수있는 패키지다. 쿠버네티스와 유사한 패키지로는 다음과같다

  • AWS Fargate
  • Azure Container Instances
  • Google Cloud Run
  • Google Kubernetes Engine (GKE)
  • Amazon Elastic Kubernetes Service (EKS)
  • Openshift Container Platform
  • Rancher
  • Docker Swarm
  • ...etc

https://www.aquasec.com/cloud-native-academy/kubernetes-101/kubernetes-alternatives/

 

10 Kubernetes Alternatives and Why You Need Them - Aqua

10 Kubernetes alternatives - CaaS like Fargate, managed K8s services like GKE, & lightweight orchestrators like Nomad

www.aquasec.com

Prometheus

TBD

Grafana

TBD

Kubeflow

TBD

Flask

python을 활용한 웹서비스 라이브러리, 간단한 코드로 웹서비스를 만들수가 있다.

아래와 같이 코드를 작성하고 python으로 코드를 실행시키면 localhost:5000에 웹서비스가 실행된걸 확인 할 수가 있다.

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"

if __name__ == "__main__":
	app.run(debug=True, host='0.0.0.0', port=5000)
# debug 모드로 실행, 모든 IP 에서 접근 허용, 5000 포트로 사용하는 것을 의미

Seldon Core

Seldon Core는 쿠버네티스 모듈이라 Helm으로 설치해줘야한다.

 

반응형