개요 이 글은 kubeflow를 쉽고 간편하게 설치해주는 Distribution인 Charmed Kubeflow를 안내하는 글이다. Charmed Kubeflow는 Canonical 에서 만든 프로젝트로 상용으로 사용해도 문제가 없다. 여기서 제공하는 Kubeflow 버전은 3가지(full, lite, edge)로 각 버전별로 기능의 수가 다르다 기존에 Kubeflow가 설치되어 있다면 따로 진행할 필요는 없다. 목표 Charmed Kubeflow 설치를 통해 kubeflow를 설치해본다. 여정 설치 요구사항은 아래와 같다 - be version 1.22 - have a (default) storage class configured - have dns configured for accessing the ..
목표 Ansible과 Kubespray를 이용해 kubernetes 환경을 구축한다. 추상화된 인프라 구축을 통해 IaC에 대해 이해한다. 여정 IaC가 뭔가요? 왜 필요한가요? 코드형 인프라(Infrastructure as Code, IaC)는 수동 프로세스가 아닌 코드를 통해 인프라를 관리하고 프로비저닝하는 것을 말합니다. - redhat 공식문서 왜 IaC가 필요해졌고, 생겼는지 짧게 설명하면 아래와 같다. 쿠버네티스를 통해 컴퓨팅 환경이 추상화되기 시작 → 클라우드 상에서 인프라 리소스가 폭발적으로 증가 → 무슨 리소스가 얼마나 할당되었는지, 동일한 설정을 가졌는지 관리가 어려워짐 → 인프라를 코드로 동일하게 관리해보자 = IaC 등장! 즉, IaC는 코드로 원하는 인프라 구조를 작성하면 어떤 환..
개요 CKA 시험에서 자주 사용되는 명령어를 정리한 글입니다. (제가 작성한 Repository에서 더 자세한 설명을 보실 수 있습니다.) 더 자세한 내용은 공식 문서를 참조하시면 좋습니다. (kubectl 치트 시트 | 명령줄 도구 (kubectl)) 상황별 명령어 모음 커맨드 단축어 설정 vi ~/.bashrc # bashrc 마지막에 추가해주세요 # 자동완성 kubectl completion bash kubeadm completion bash # 단축어 세팅 alias kc="kubectl create" export do="--dry-run=client -o yaml" # Create the YAML tamplate (사용법은 다음 스크립트 참조) # Save and Quit exec $SHELL ..
개요 Kubeflow를 통해 ML Ops 생태계를 이해하고, 전 주기 파이프라인를 구성해본다. 목표 ML 모델을 관리하고 배포하는 과정을 이해한다. ML Serving 프레임워크인 Bento와 Kubernetes 배포를 도와주는 Yatai Stack을 이해한다. 여정 BentoML 및 Yatai Stack의 개념 Yatai Stack의 주요 컴포넌트 Bento : ML 모델을 API로 호출할 수 있도록 감싼 소스코드 집합(tar파일 O, 컨테이너 X) Yatai : 모델 및 Bento를 Object Storage에 저장하는 Registry 관리 대시보드 컴포넌트 Yatai Image Builder : Bento를 컨테이너 이미지로 빌드하는 컴포넌트 Yatai Deployment : Bento 컨테이너 이..
개요 Kubeflow를 통해 ML Ops 생태계를 이해하고, 전 주기 파이프라인를 구성해본다. 목표 멀티 클러스터의 필요성을 이해한다. RBAC(Role-based access control)를 통해 클러스터 환경분리를 실습해본다. 여정 멀티 클러스터가 필요한 이유 현대 개발조직은 개발, 테스트, 프로덕션 등을 위해 환경 전반에 분산된 복수개의 클러스터를 보유하고 있다. 이러한 엔터프라이즈 환경에서는 테넌트(Tenant, 조직에 속한 개별 팀)들이 작업 부하를 공유한다. 때문에, 다른 테넌트(혹은 악의적인 테넌트)에 의해 단일 실패 지점이 생길 수 있게 된다. 따라서, 다중 테넌트 클러스터의 운영자는 각 테넌트를 격리하여 한 테넌트가 해킹을 당하거나 악의적인 행동을 할 때, 다른 테넌트와 클러스터가 입는..
개요 Kubeflow를 통해 ML Ops 생태계를 이해하고, 전 주기 파이프라인를 구성해본다. 목표 Istio Service Mesh를 모니터링하기 위한 도구인 Kiali를 설치해보자 이 부분은 ML Ops와 크게 관련 없는 내용이므로 Service Mesh 모니터링이 필요없다면 생략해도 좋다. 여정 Istio 단독 설치 # 스크립트를 통해 Istio 다운로드 mkdir istio cd istio curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.17 TARGET_ARCH=x86_64 sh - # 명령어 등록 vi ~/.bashrc export PATH="$PATH:.../istio/istio-1.17.1/bin" source ~/.bashrc # Is..
개요 Kubeflow를 통해 ML Ops 생태계를 이해하고, 전 주기 파이프라인를 구성해본다. 목표 kubeflow의 개요와 설치방법을 정리한다. 여정 Kustomize 설치 Kustomize는 kustomization 파일을 통해 쿠버네티스 오브젝트를 사용자가 원하는 대로 변경하는(customize) 독립형 도구이다. kubectl 1.14 버전 이상부터 내장되어 apply -f 명령으로 바로 사용할 수 있다. 현재 3.2.0 or 4.5.7버전이 사용가능하며, 4.5.7버전은 간편 설치용 싱글 커맨드를 사용할 수 없다. # Kustomize 설치 및 명령어 등록 wget https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/i..
개요 Kubeflow를 통해 ML Ops 생태계를 이해하고, 전 주기 파이프라인를 구성해본다. 목표 CentOS 7 기준 GPU 관련 환경을 구성해본다. GPU를 이용한 기본적은 Pod Deploy를 진행해본다. 여정 워커노드에 Graphic Driver 설치 # driver init # 리눅스 버전 확인 sudo uname -a sudo hostnamectl cat /etc/redhat-release sudo yum update -y sudo yum group install -y "Development Tools" # "Development Tools" - 개발 툴 라이브러리 그룹 설치 sudo yum install -y kernel-devel # kernel-devel - 커널패키지 대해 빌드를 모듈..
개요 Kubeflow를 통해 ML Ops 생태계를 이해하고, 전 주기 파이프라인를 구성해본다. 목표 Kubeflow와 Service Mesh의 개념을 학습하고, 어떤 관계를 가지는지 알아보자. 여정 ML Ops와 Kubeflow ML Ops 프로덕션 환경에서 ML 모델을 안정적, 효율적으로 배포 및 유지 관리하는 방법론 ML 시스템 개발(Dev)과 ML 시스템 운영(Ops)의 합성어 Kubeflow 머신러닝 워크플로우를 구축하고 배포하기 위한 Orchestration 플랫폼 쿠버네티스를 사용하는 머신러닝 도구 모음(Toolkit) 크게 모델 실험 → 모델 생산 의 과정으로 이루어져 있다. Kubeflow 는 ML 관련 프레임워크, 도구, 서비스의 집합이다. 따라서, 이러한 환경을 연결하기 위해서는 Ser..
개요 CI/CD를 위한 Pipeline 구성을 단계별로 학습한다. 목표 Gitlab의 Private Container Registry에서 이미지를 Pull & Deploy하는 과정을 학습한다. (더 자세한 내용은 공식문서와 참고자료를 확인하자) 여정 토큰 생성 깃랩 Repository에서 Settings > Repository > Deploy tokens 체크박스에서 필요한 권한을 Check한다(주로 Read 권한만 필요) 토큰 생성 결과는 한번만 확인할 수 있으므로 잘 저장해두자. 클러스터에 적용하기 간단한 방법 # 방법1 - Inline Command # Gitlab은 registry.gitlab.com을 넣는다. kubectl create secret \ docker-registry ${secret..