목록MLOPS (62)
중요한건 꺾이지 않는 맥북

KServe로 프로젝트가 이전되기 전의 KFserving standalone을 Kubernetes 상에서 구축중이었습니다. KFServing Version: 0.5.1 이슈 1 Failed to pull image "gcr.io/kfserving/kfserving-controller:v0.5.1" MacBook-Pro:kfserving-lts jaeuheo$ docker pull gcr.io/kfserving/kfserving-controller:v0.5.1 WARNING: Python 3.5-3.7 will be deprecated on August 8th, 2023. Please use Python version 3.8 and up. If you have a compatible Python inter..

글을 작성하기 전에, 저는 현재 회사에서 주피터 노트북 앱을 배포하는 ML 플랫폼을 개발,운영하고 있습니다. MLOps 서비스도 추가하기 위해서 사용자별로 주피터 노트북을 띄워준 네임스페이스에 추가로 MLflow 서버도 배포할 계획이라서 현재 태스크를 진행중에 있습니다. 1. 각 주피터 노트북 서버 Pod가 띄워지는 네임스페이스에 MLflow 서버도 같이 띄웁니다. 2. MLflow Server가 Backend Store, Artifacts Store로 사용할 path를 nfs 서버와 마운트 합니다. 3. 클라이언트가 해당 네임스페이스에만 접근가능하도록 RBAC를 생성합니다. MLflow Dockerfile FROM python:3.7 RUN pip install mlflow==1.9.1 RUN pip ..

글을 작성하기 전에, 저는 현재 회사에서 ML 플랫폼을 개발,운영하고 있으며 MLOps 플랫폼으로 고도화를 진행중에 있습니다. MLflow를 제공하려고 하는데, 각 사용자의 Namespace마다 띄워주기에는 컴퓨팅 자원이 기하급수적으로 늘어날 것으로 예상됩니다. 따라서, MLflow를 단일 서버로 서로 다른 여러 사용자에게 서비스를 제공할 수 있는 Multi-Tenant MLflow로 구축하려합니다. Multi-Tenant MLflow를 지원하는 MLflow Authentication 컴포넌트는 Document에서는 2.5.0 버전부터 제공하는 반면, github에서는 v2.3.0 부터 프로젝트에 추가된 것으로 확인됩니다. (아래 링크 참조) https://github.com/mlflow/mlflow/t..

주피터 컨테이너를 생성해주는 Kubespawner를 활용하여 구축한 쿠버네티스 클러스터는 마스터 노드와 워커 노드가 별도의 방화벽 정책이 필요하지 않았다. 하지만, 공공 클러스터의 보안 정책에 따라 앞으로 추가되는 워커 노드들은 방화벽(https://kubernetes.io/docs/reference/networking/ports-and-protocols/)을 열어서 클러스터를 구성해야했다. 하지만, 주피터 컨테이너를 띄웠을때 이슈가 발생했다. # k get pods -A |grep jeawoo0594-02-2mpqp9r1 jeawoo0594-02-2mpqp9r1 jupyter-jeawoo0594-2d02-2mpqp9r1 1/1 Running 0 2d1h test1-01-es02mn3h 파드가 정상적으로..
사용자가 접근하는 앱을 배포시, pod에서 curl, telnet과 같은 네트워크 통신 확인 명령어 설치를 안한 경우 k exec -it {pod} -n {namespace} -- bash # pod 에 bash 쉘로 접속한뒤 echo > /dev/tcp/{ip}/{port} 위 명령어로 해당 pod에서 외부 ip:port 로 통신 확인이 가능합니다. 해당 방법은 bash의 built-in 기능이라고 합니다. [통신 성공시] 해당 포트가 열려있는 경우 echo $? 위 명령어로 다시 확인하면 0으로 응답이 온다. 해당 포트가 열려있지 않은 경우 아래처럼 connection refused 발생한다. bash: connect: Connection refused bash: /dev/tcp/10.41.0.42/..

Kubeflow Pipeline python api code import kfp from kfp import dsl from functools import partial from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score import numpy as np from kfp.components import InputPath, OutputPath, create_component_from_func @partial( create_compone..

TLS - Transport Layer Security (전송계층보안) *출처: https://lion-king.tistory.com/entry/%EB%B3%B4%EC%95%88-MTLS-%EB%9E%80-Mutual-TLS-Authentication SSL 및 TLS는 네트워크를 통해 작동하는 서버, 시스템 및 응용프로그램간에 인증 및 데이터 암호화를 제공하는 암호화 프로토콜 (예시. 웹 브라우저가 웹 서버에 대한 보안 연결을 생성하는 프로토콜) SSL은 TLS의 이전 프로토콜이다. SSL은 현재 프로토콜 사용이 폐기되었고, TLS를 사용해야 한다. * X.509 인증서 TLS의 핵심은 PKI (공개 키 인프라)와 특히 X.509 인증서 암호화에서 X.509는 공개 키 인증서의 형식을 정의하는 표준이고..