Kubernetes

    018. [Kubeflow][KServe] SKLearn model InferenceService 배포하기

    [!NOTE] 이 문서는 KServe v0.7을 기준으로 작성되었습니다. 이번글에서는 SKLearn 모델을 학습하고 KServe의 InferenceService로 배포해보겠습니다. 모델 학습, 로컬 테스트, Inferece Serivce 배포 순서로 진행합니다. 모델 학습과 로컬 배포테스트는 건너 뛰셔도 무방합니다. 모델 학습하기 학습할 모델은 머신러닝에서 매우 유명한 Iris 데이터셋, 붓꽃 종 분류 문제를 해결하는 모델입니다. 다음 코드를 수행해서 모델을 학습하고 'model.joblib'으로 학습한 모델을 저장합니다. from sklearn import svm from sklearn import datasets from joblib import dump iris = datasets.load_iris..

    016. [Kubeflow][KServe] Model Serving Data Plane

    016. [Kubeflow][KServe] Model Serving Data Plane

    Data Plane InferenceService의 Data Plane 아키텍처는 단일 모델에 대한 요청을 조절하는 구성요소의 정적 그래프(Static Graph)로 구성됩니다. Embedding, A/B test, Multi-Arm-Bandits과 같은 고급 기능은 반드시 인퍼런스 서비스와 함께 구성되어야 합니다. Concept 컴포넌트(Component): 각 엔드포인트는 여러개의 컴포넌트로 구성되어 있습니다. "predictor", "explainer", "transformer" 가 그 컴포넌트들 입니다. 필수 컴포넌트는 predictor 하나이며 시스템의 핵심(core) 입니다. 나머지 "transformer", "explainer"는 선택 컴포넌트입니다. KServe가 진화함에 따라 Outlie..

    015. [Kubeflow][KServe] Could not find CSRF cookie XSRF-TOKEN in the request 문제 해결

    개요 Kubeflow 1.5 버전을 manifests로 설치하면 Kserve 모델 생성, Request 요청시 Could not find CSRF cookie XSRF-TOKEN in the request 에러가 발생한다. Kubeflow 1.5 버전 부터 KFserving의 이름이 Kserve로 바뀌고 Kubeflow에서 완전히 분리되어 개별 설치가 가능해졌다. 그러나 1.5버전은 호환성을 위해 기존 KFServing과 Kserve가 같이 설치 될 수 있다. 이 때문에 에러가 발생하는데, 기본 설치 Manifest의 README.md에는 별다른 설명 없이 kustomization yaml 파일에만 주석이 되어 있어서 아주 해결법을 찾기 까다롭다. 해결법 해결법은 아주 간단하다. 1. 기존에 설치한 Ku..

    014. kubectl kubernetes context, cluster 바꾸기 (kubectx)

    TL;DR(요약) # kubectx 설치 $ kubectl krew install ctx # context 리스팅 $ kubectl ctx # context 변경 $ kubectl ctx new-context Kubectl 프로처럼 다루기 시리즈 - Kubectl 플러그인 매니저 krew 설치하기 - Kubectl Namespace 빠르게 변경하기 (kubens) - Kubectl Context 빠르게 변경하기 (Kubectx) - Kubectl Config, Context 편하게 관리하기 (Konfig) 1. Kubectl 사용하기 # context 확인 $ kubectl config get-contexts CURRENT NAME CLUSTER AUTHINFO NAMESPACE local local l..

    013. kubectl kubeconfig 추가, 병합, 추출하기 (konfig)

    TL;DR(요약) # 설치 kubectl krew install konfig # config 추가하기 kubectl konfig import new-cfg # config 합치기 kubectl konfig merge cfg1 cfg2 > merged-cfg # config 추출하기 kubectl konfig export minikube > minikube.config # 삭제 kubectl krew uninstall konfig Kubectl 프로처럼 다루기 시리즈 - Kubectl 플러그인 매니저 krew 설치하기 - Kubectl Namespace 빠르게 변경하기 (kubens) - Kubectl Context 빠르게 변경하기 (Kubectx) - Kubectl Config, Context 편하게 관..

    012. kubectl 플러그인 매니저 Krew 설치하기

    TL;DR(요약) # Krew 설치 ( set -x; cd "$(mktemp -d)" && OS="$(uname | tr '[:upper:]' '[:lower:]')" && ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" && KREW="krew-${OS}_${ARCH}" && curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" && tar zxvf "${KREW}.tar.gz" && ./"${KREW}" install krew ) # .bashrc or .zs..

    010. [대학원생의 좌충우돌 GPU 클러스터 구축기] 2. GPU 클러스터 만들기(Kubernetes)!

    이전 글에서 만든 GPU 모니터링으로 수동분배가 쉬워지긴 했지만, 늘어나는 서버, 사용자를 하나씩 할당하는건 너무나.. 빡센일이었다.. 그래서 GPU를 자동으로 할당하고 사용할 수 있는 방법이 없을까 고민하고 검색하다가 GPU 클러스터를 만들기로 했다! 처음 찾아본것은 기존 HPC(Hight Performance Computing)에서 많이 사용하던 SLURM 이었는데 서버 별로 모든 환경을 동일하게 해주어야 하는 문제점이 하나 있었다. 하지만 사람마다 사용해야하는 파이썬 버전, 패키지 버전이 다를 경우가 흔해서 파이썬 가상환경이나 도커를 많이 사용하고있는데 이것도 하나씩 세팅을 해주어야하니 불편할 수 밖에 없다고 판단했다. 다음으로 찾아본것은 조금더 최근에 나오고 많이 사용되고 있는 Kubernetes..

    004. Kubectl 기본 namespace 변경하기 (kubectl, kubectx, kubens)

    TL;DR(요약) # kubens(kubectx) 설치 # krew 이용하여 설치 $ kubectl krew install ns # apt (Debian, Ubuntu) $ sudo apt install kubectx # Home brew (MacOS) $ brew install kubectx # namespace 변경 $ kubens kuby-system Kubectl 프로처럼 다루기 시리즈 - Kubectl 플러그인 매니저 krew 설치하기 - Kubectl Namespace 빠르게 변경하기 (kubens) - Kubectl Context 빠르게 변경하기 (Kubectx) - Kubectl Config, Context 편하게 관리하기 (Konfig) 1. kubectl 사용하기 Kubernetes를 ..