이 섹션의 다중 페이지 출력 화면임. 여기를 클릭하여 프린트.
AI&MLOps Platform
- 1: Overview
- 2: How-to guides
- 2.1: 클러스터 배포
- 2.2: Kubeflow 사용 가이드
- 3: API Reference
- 4: CLI Reference
- 5: Release Note
1 - Overview
서비스 개요
AI&MLOps Platform은 머신러닝 모델의 개발, 학습, 배포 과정 전체 파이프라인의 반복적인 작업을 자동화하는 머신러닝 플랫폼입니다. AI&MLOps Platform 서비스를 통해 Kubernetes 기반의 AI/MLOps 환경을 기반으로, 학습 데이터와 모델, 운영 데이터의 통합적인 관리가 가능합니다.
AI&MLOps Platform은 머신러닝 모델의 개발, 학습, 튜닝, 배포 기능을 활용할 수 있는 오픈소스 상품인 Kubeflow.Mini 서비스와 분산학습 Job 실행 및 모니터링 등 Add-on 기능을 추가한 Enterprise 서비스를 제공합니다.
특장점
Cloud Native MLOps 환경 제공: AI&MLOps Platform은 클라우드에 최적화된 머신러닝 모델 개발 환경을 제공하며, Kubernetes 기반으로 다양한 오픈소스와의 연계가 편리합니다.
머신 러닝 개발 및 운영 편의성: TensorFlow, PyTorch, scikit-learn, Keras 등 다양한 머신러닝 프레임워크를 지원하는 표준화된 환경을 제공합니다. 머신러닝 모델의 개발, 학습, 배포 과정의 전체 Pipeline을 자동화하여 제공함으로써 모델 구성 및 생성이 쉽고 재사용이 용이합니다.
GPU 연계 활용 강화: Bare Metal Server 기반의 Multi Node GPU 및 GPUDirect RDMA(Remote Direct Memory Access)를 통해 LLM(Large Language Model)과 자연어처리(NLP)의 Job 속도를 획기적으로 개선할 수 있습니다.
서비스 구성도
제공 기능
AI&MLOps Platform은 다음과 같은 기능을 제공하고 있습니다.
ML 모델 개발 환경 및 기능
- Notebook 제공: ML Framework(Tensorflow, Pytorch 등)를 포함한 Jupyter Notebook과 VS Code를 생성합니다.
- TensorBoard: TensorBoard(*ML 모델 학습과정 시각화/분석 도구) 서버를 생성하고 관리합니다.
- Volumes: ML 모델 개발 시 데이터셋과 모델 저장, Jupyter Notebook 생성 시 Volume 연결하여 사용합니다.
ML 모델 분산훈련 Job 수행/관리
- 분산학습 Job 실행 및 모니터링, 추론서비스 관리 및 분석을 지원합니다. (Add-on)
- Job Queue 관리 등 MLOps 환경 구성을 위한 다양한 기능을 제공합니다. (Add-on)
- Job Scheduler(FIFO, Bin-packing, Gang 기반), GPU Fraction, GPU 자원 모니터링 등 효율적인 GPU 자원 활용 기능을 제공합니다. (Add-on)
- BM 기반의 Multi Node GPU 및 GPU Direct RDMA(Remote Direct Memory Access)를 통해LLM(Large Language Model)과 자연어처리(NLP)의 Job 속도를 획기적으로 개선하였습니다. (Add-on)
ML 모델 실험관리 및 파이프라인
- ML 파이프라인 실험관리를 위한 Experiments(KFP)를 제공합니다.
- ML Task를 단계적으로 구성하여 실행하기 위한 Pipeline 자동화 구성 기능을 지원합니다.
구성 요소
운영체제 버전
AI&MLOps Platform에서 지원하는 운영체제는 다음과 같습니다.
| 운영체제(OS) | 버전 |
|---|---|
| RHEL | RHEL 8.3 |
| Ubuntu | Ubuntu 18.04, Ubuntu 20.04, Ubuntu 22.04 |
리전별 제공 현황
AI&MLOps Platform은 아래의 환경에서 제공 가능합니다.
| 리전 | 제공 여부 |
|---|---|
| 한국 서부(kr-west1) | 제공 |
| 한국 동부(kr-east1) | 제공 |
| 한국 남부1(kr-south1) | 미제공 |
| 한국 남부2(kr-south2) | 미제공 |
| 한국 남부3(kr-south3) | 미제공 |
선행 서비스
해당 서비스를 생성하기 전에 미리 구성되어 있어야 하는 서비스 목록입니다. 자세한 내용은 각 서비스 별로 제공되는 가이드를 참고하여 사전에 준비하세요.
| 서비스 카테고리 | 서비스 | 상세 설명 |
|---|---|---|
| Container | Kubernetes Engine | Kubernetes 컨테이너 오케스트레이션 서비스 |
2 - How-to guides
AI&MLOps Platform 생성하기
사용자는 Samsung Cloud Platform Console을 통해 AI&MLOps Platform의 필수 정보를 입력하고, 상세 옵션을 선택하여 해당 서비스를 생성할 수 있습니다.
AI&MLOps Platform을 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > AI/ML > AI&MLOps Platform 메뉴를 클릭하세요. AI&MLOps Platform의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 AI&MLOps Platform 생성 버튼을 클릭하세요. AI&MLOps Platform 생성 페이지로 이동합니다.
- AI&MLOps Platform 생성의 서비스 유형 선택 페이지에서 서비스 생성에 필요한 정보들을 입력하고, 상세 옵션을 선택하세요.
- 서비스 유형 및 버전 선택 영역에서 서비스 유형을 선택하세요.
구분 필수 여부상세 설명 서비스 유형 필수 사용자가 선택하는 서비스 유형 - AI&MLOps Platform
- Kubeflow Mini
서비스 유형 버전 필수 선택한 서비스의 버전 선택 - 제공하는 서비스의 버전 리스트 제공
표. AI&MLOps Platform 서비스 유형 및 버전 선택 항목 - 클러스터 배포 영역 구분 영역에서 서비스 생성에 필요한 옵션을 선택하세요.
구분 필수 여부상세 설명 클러스터 배포 영역 필수 - Kubernetes Engine에서 배포: 기존에 생성한 Kubernetes Engine을 선택
- 새 클러스터에 배포: AI&MLOps Platform 생성 시에 Kubernetes Engine을 함께 생성
표. AI&MLOps Platform 서비스 클러스터 배포 영역 구분 항목참고해당 클러스터 배포 설정에 따라 다음 서비스 정보 입력 페이지의 설정 요소들이 달라집니다.
- 서비스 유형 및 버전 선택 영역에서 서비스 유형을 선택하세요.
- AI&MLOps Platform 생성의 서비스 정보 입력 페이지에서 서비스 생성에 필요한 정보들을 입력하고, 상세 옵션을 선택하세요.
- 클러스터 배포 영역을 선택할 수 있습니다.
- 새 클러스터에 배포 설정 방법은 새 클러스터에 배포 가이드를 참고하세요.
- SCP Kubernetes Engine에서 배포 설정 방법은 SCP Kubernetes Engine에서 배포 가이드를 참고하세요.
- 설치에 필요한 Kubernetes 클러스터 사양은 설치에 필요한 Kubernetes 클러스터 사양 가이드를 참고하세요.
- 클러스터 배포 영역을 선택할 수 있습니다.
- AI&MLOps Platform 생성의 생성 정보 확인 페이지에서 생성한 상세 정보와 예상 청구 금액을 확인하고, 완료 버튼을 클릭하세요.
- 생성이 완료되면, AI&MLOps Platform 서비스 목록 페이지에서 생성한 자원을 확인하세요.
AI&MLOps Platform 상세 정보 확인하기
AI&MLOps Platform 서비스는 전체 자원 목록과 상세 정보를 확인하고 수정할 수 있습니다. AI&MLOps Platform 서비스 상세 페이지에서는 상세 정보, 태그, 작업 이력 탭으로 구성되어 있습니다.
AI&MLOps Platform 서비스의 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > AI/ML > AI&MLOps Platform 서비스 메뉴를 클릭하세요. AI&MLOps Platform 서비스의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 AI&MLOps Platform 메뉴를 클릭하세요. AI&MLOps Platform 서비스 목록 페이지로 이동합니다.
- AI&MLOps Platform 서비스 목록 페이지에서 상세 정보를 확인할 자원을 클릭하세요. AI&MLOps Platform 서비스 상세 페이지로 이동합니다.
- AI&MLOps Platform 서비스 상세 페이지에는 상태 정보 및 부가 기능 정보가 표시되며, 상세 정보, 태그, 작업 이력 탭으로 구성됩니다.
상세 정보
AI&MLOps Platform 서비스 목록 페이지에서 선택한 자원의 상세 정보를 확인하고, 필요한 경우 정보를 수정할 수 있습니다.
| 구분 | 상세 설명 |
|---|---|
| 서비스 | 서비스명 |
| 자원 유형 | 자원 유형 |
| SRN | Samsung Cloud Platform에서의 고유 자원 ID |
| 자원명 | 자원 이름
|
| 자원 ID | 서비스에서의 고유 자원 ID |
| 생성자 | 서비스를 생성한 사용자 |
| 생성 일시 | 서비스를 생성한 일시 |
| 수정자 | 서비스 정보를 수정한 사용자 |
| 수정 일시 | 서비스 정보를 수정한 일시 |
| 대시보드상태 | 대시보드 상태값 |
| 서비스명 | 서비스 이름 |
| Admin Email Address | 관리자 이메일 주소 |
| 이미지명 | 서비스 이미지 이름 |
| 버전 | 이미지 버전 |
| 서비스 유형 | 베포된 서비스 유형 |
태그
AI&MLOps Platform 서비스 목록 페이지에서 선택한 자원의 태그 정보를 확인하고, 추가하거나 변경 또는 삭제할 수 있습니다.
| 구분 | 상세 설명 |
|---|---|
| 태그 목록 | 태그 목록
|
작업 이력
AI&MLOps Platform 서비스 목록 페이지에서 선택한 자원의 작업 이력을 확인할 수 있습니다.
| 구분 | 상세 설명 |
|---|---|
| 작업 이력 목록 | 자원 변경 이력
|
AI&MLOps Platform 접속하기
AI&MLOps Platform 대시보드에 접속하려면 하시 사전작업이 선행되어야 합니다.
사전작업
해당 AI&MLOps Platform 접속하기 위해서 사전에 Security Group과 Firewall(방화벽 사용 시)에 관련 포트와 접속이 필요한 IP를 설정해야 합니다.
Kubeflow Mini: 31390 포트 (Security Group의 인바운드 룰, VPC 방화벽)
클러스터 Worker Node에 접근하려면 Security Group과 Firewall (VPC 방화벽 사용 시)에 22 포트의 인바운드 룰을 설정해야 합니다.
대시보드 접속하기
AI&MLOps Platform 서비스에 접속하려면 다음 절차를 따르세요.
- 모든 서비스 > AI/ML > AI&MLOps Platform 서비스 메뉴를 클릭하세요. AI&MLOps Platform 서비스의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 AI&MLOps Platform 서비스 메뉴를 클릭하세요. AI&MLOps Platform 서비스 목록 페이지로 이동합니다.
- AI&MLOps Platform 서비스 목록 페이지에서 상세 정보를 확인할 자원을 클릭하세요. AI&MLOps Platform 상세 페이지로 이동합니다.
- AI&MLOps Platform 상세 페이지에서 접속 가이드 버튼을 클릭하세요. 접속 가이드 팝업창이 열립니다.
- 접속 가이드 팝업창에서 대시보드의 URL 링크 를 클릭하세요. 해당 대시보드 페이지로 이동합니다.
AI&MLOps Platform 해지하기
사용하지 않는 해당 서비스를 해지하여 운영 비용을 절감할 수 있습니다. 단, 서비스를 해지하면 운영 중인 서비스가 즉시 중단될 수 있으므로 서비스 중단 시 발생하는 영향을 충분히 고려한 후 해지 작업을 진행해야 합니다.
AI&MLOps Platform을 해지하려면 다음 절차를 따르세요.
- 모든 서비스 > AI/ML > AI&MLOps Platform 서비스 메뉴를 클릭하세요. AI&MLOps Platform 서비스의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 AI&MLOps Platform 서비스 메뉴를 클릭하세요. AI&MLOps Platform 서비스 목록 페이지로 이동합니다.
- AI&MLOps Platform 서비스 목록 페이지에서 상세 정보를 확인할 자원을 클릭하세요. AI&MLOps Platform 상세 페이지로 이동합니다.
- AI&MLOps Platform 상세 페이지에서 서비스 해지 버튼을 클릭하세요. 서비스 해지 팝업창이 열립니다.
- 확인을 위해 서비스명을 입력한 후 확인을 클릭하세요.
- 해지가 완료되면, AI&MLOps Platform 서비스 목록 페이지에서 자원이 해지되었는지 확인하세요.
2.1 - 클러스터 배포
클러스터 배포 영역
Samsung Cloud Platform에서 AI&MLOps Platform 생성의 서비스 유형 선택에서 2가지의 클라우드 배포 영역을 제공하고 있습니다.
클러스터 배포 작업을 진행하기 전에 꼭 설치에 필요한 Kubernetes 클러스터 사양을 확인하세요.
- 클러스터 배포 영역의 선택에 상관없이 사전에 Kubernetes 클러스터 사양을 확인해야 합니다.
- 상세한 사양 정보는 클러스터 사양 가이드를 참고하세요.
클러스터 배포 영역의 선택에 따라 AI&MLOps Platform 생성의 서비스 정보 입력 페이지의 설치 내용이 달라집니다.
SCP Kubernetes Engine에서 배포
- 모든 서비스 > AI/ML > AI&MLOps Platform 메뉴를 클릭하세요. AI&MLOps Platform의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 AI&MLOps Platform 생성 버튼을 클릭하세요. AI&MLOps Platform 생성 페이지로 이동합니다.
- AI&MLOps Platform 생성의 서비스 유형 선택 페이지에서 서비스 생성에 필요한 정보들을 입력하고, 상세 옵션을 선택하세요.클러스터 배포SCP Kubernetes Engine에서 배포 옵션을 선택하세요.
- AI&MLOps Platform 생성의 서비스 정보 입력 페이지에서 서비스 생성에 필요한 정보들을 입력하고, 상세 옵션을 선택하세요.
- 서비스 정보 입력 영역에서 서비스 생성에 필요한 정보들을 입력하거나 조회하세요.
구분 필수 여부상세 설명 서비스명 필수 AI&MLOps Platform 이름 입력 - AI&MLOps Platform 이름은 프로젝트 내에서 중복하여 사용 불가
Storage Class 필수 Storage Class는 자동으로 등록 설치 노드 정보 조회 선택한 Kubernetes Engine의 노드 정보를 확인 Admin Email Address 필수 로그인 시 사용할 관리자(Admin)의 이메일 주소 입력 비밀번호 필수 로그인 시 사용할 비밀번호를 입력 비밀번호 확인 필수 비밀번호 오류를 방지하기 위해 비밀번호 재입력 표. AI&MLOps Platform 서비스 정보 입력 항목 - 추가 정보 입력 영역에서 서비스 생성에 필요한 정보들을 입력하거나 선택하세요.
구분 필수 여부상세 설명 태그 선택 AI&MLOps Platform에 추가할 태그 선택 - 태그 추가를 클릭하면 태그를 생성하여 추가하거나 기존 태그를 추가
- 태그는 최대 50개까지 등록
- 추가한 신규 태그는 서비스 생성 완료 후 적용
표. AI&MLOps Platform 서비스 추가 정보 입력 항목
- 서비스 정보 입력 영역에서 서비스 생성에 필요한 정보들을 입력하거나 조회하세요.
새 클러스터에 배포
- 모든 서비스 > AI/ML > AI&MLOps Platform 메뉴를 클릭하세요. AI&MLOps Platform의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 AI&MLOps Platform 생성 버튼을 클릭하세요. AI&MLOps Platform 생성 페이지로 이동합니다.
- AI&MLOps Platform 생성의 서비스 유형 선택 페이지에서 서비스 생성에 필요한 정보들을 입력하고, 상세 옵션을 선택하세요.클러스터 배포새 클러스터에 배포 옵션을 선택하세요.
- AI&MLOps Platform 생성의 서비스 정보 입력 페이지에서 서비스 생성에 필요한 정보들을 입력하고, 상세 옵션을 선택하세요.
서비스 정보 입력 영역에서 서비스 생성에 필요한 정보들을 입력하거나 조회하세요.
구분 필수 여부상세 설명 서비스명 필수 AI&MLOps Platform 이름 입력 - AI&MLOps Platform 이름은 프로젝트 내에서 중복하여 사용 불가
Storage Class 필수 Storage Class는 자동으로 등록 설치 노드 정보 조회 선택한 Kubernetes Engine의 노드 정보를 확인 Admin Email Address 필수 로그인 시 사용할 관리자(Admin)의 이메일 주소를 입력 비밀번호 필수 로그인 시 사용할 비밀번호를 입력 비밀번호 확인 필수 비밀번호 오류를 방지하기 위해 비밀번호 재입력 표. AI&MLOps Platform 서비스 정보 입력 항목Kubernetes Engine 정보입력 영역에서 필요한 정보를 입력 또는 선택하세요.
구분 필수 여부상세 설명 클러스터명 필수 클러스터 이름 - 영문으로 시작하며 영문, 숫자, 특수문자(
-) 사용
- 3~30자 이내로 입력
제어 영역 설정 > Kubernetes 버전 필수 Kubernetes 버전 선택 제어 영역 설정 > 제어 영역 로깅 선택 제어 영역 로깅 사용 여부 선택 - 클러스터 제어 영역의 Audit/Event 로그를 Cloud Monitoring의 로그 분석에서 확인 가능
- Account 내 전체 서비스 대상으로 1GB의 로그 저장은 무료로 제공되며, 1GB가 넘을 경우 순차적으로 삭제됨
- 자세한 내용은 Cloud Monitoring > 로그 분석을 참고
네트워크 설정 필수 노드 풀의 네트워크 연결 설정 - VPC: 미리 생성한 VPC를 선택
- Subnet: 선택한 VPC의 서브넷 중 사용할 일반 Subnet을 선택
- Security Group: 검색 버튼을 클릭한 후 Security Group 선택 팝업창에서 Security Group을 선택
- Load Balancer: Kubernetes Service 객체에서
type:LoadBalancer기능 제공- 동일 네트워크 상의 로드 밸런서를 선택
- 사용 여부를 선택
- 설정 후에는 변경 불가
File Storage 설정 필수 클러스터에서 사용할 파일 스토리지 볼륨을 선택 - 기본 볼륨(NFS): 검색 버튼을 통해 File Storage를 선택
- 기본 Volume 파일 스토리지는 NFS 형식만 제공
표. Kubernetes Engine 서비스 정보 입력 항목- 영문으로 시작하며 영문, 숫자, 특수문자(
노드 풀 정보 입력 영역에서 필요한 정보를 입력 또는 선택하세요.
구분 필수 여부상세 설명 노드 풀 구성 필수 노드 풀 정보를 선택 - * 표시된 항목은 필수 입력 항목이므로 반드시 입력
- AI&MLOps Platform의 경우 사용에 따라 이미지 용량이 지속적으로 늘어날 수 있으므로 Block Storage를 최소 200GB 이상으로 설정 시 원활한 시스템 구성이 가능
표. AI&MLOps Platform 서비스 정보 입력 항목참고- Windows OS의 노드 풀은 클러스터에서 추가 스토리지(CIFS) 볼륨이 사용 중인 경우에만 생성할 수 있습니다.
- 노드 풀 Block Storage의 볼륨 암호화는 최초 생성 시에만 설정할 수 있습니다.
- 암호화를 설정하면 일부 기능의 성능 저하가 발생할 수 있습니다.
- 노드 풀 자동 확장 또는 축소 기능을 사용으로 선택한 경우에만 노드 수, 최소 노드 수, 최대 노드 수 를 입력할 수 있습니다.
추가 정보 입력 영역에서 필요한 정보를 입력 또는 선택하세요.
구분 필수 여부상세 설명 태그 선택 AI&MLOps Platform에 추가할 태그 선택 - 태그 추가를 클릭하면 태그를 생성하여 추가하거나 기존 태그를 추가
- 태그는 최대 50개까지 등록
- 추가한 신규 태그는 서비스 생성 완료 후 적용
표. AI&MLOps Platform 서비스 정보 입력 항목
클러스터 사양
AI&MLOps Platform을 이용하려면 AI&MLOps Platform을 설치할 Kubernetes Engine이 필요합니다. 기존에 생성한 Kubernetes Engine을 선택하거나, AI&MLOps Platform 생성 시 함께 Kubernetes Engine을 생성할 수 있습니다.
설치에 필요한 Kubernetes 클러스터의 사양은 다음과 같습니다.
노드 풀 자원 규모 (2개 이상의 노드로 구성)
- AI&MLOps Platfom : vCPU 32, Memory 128G 이상
- Kubeflow Mini: vCPU 24, Memory 96G 이상
Kubernetes 버전
- AI&MLOps Platform v1.9.1 (k8s v1.30)
- Kubeflow Mini v1.9.1 (k8s v1.30)
2.2 - Kubeflow 사용 가이드
아래에서는 Kubeflow를 생성한 후, Kubeflow의 사용 방법에 대해 가이드합니다.
Kubeflow 사용자 추가
아래에서는 Kubeflow를 생성한 이후의 Kubeflow의 사용 방법에 대해 가이드합니다.
Kubeflow는 설치 초기 화면에서 입력한 Admin User 1명의 계정만 생성되어있습니다.
Kubeflow Dashboard 이용 시, 초기 사용자 이외에 사용자를 추가하기 위해서는 Dex(Kubeflow의 인증 연계 컴포넌트)의 설정을 변경해야 합니다.
- Dex는 auth 네임스페이스(namespace)에 배포되며, 환경설정은 dex 라는 이름의 configmap 으로 저장되어 있습니다.
다음은 Dex 환경 설정의 예시입니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: dex
namespace: auth
data:
config.yaml: |
issuer: http://dex.auth.svc.cluster.local:5556/dex
storage:
type: kubernetes
config:
inCluster: true
web:
http: 0.0.0.0:5556
logger:
level: "debug"
format: text
oauth2:
skipApprovalScreen: true
enablePasswordDB: true
staticPasswords:
- email: admin@kubeflow.org
hash: $2y$10$Yb9WVbn8pzVSM6fBgKdFae1Bh6Z.XTihi7bNu3sB6/h5bt1JuUOgq
username: admin
userID: 9cb67307-fd6d-4441-9b59-52acd78f4c9e
staticClients:
- id: kubeflow-oidc-authservice
redirectURIs: ["/login/oidc"]
name: 'Dex Login Application'
secret: pUBnBOY80SnXgjibTYM9ZWNzY2xreNGQok apiVersion: v1
kind: ConfigMap
metadata:
name: dex
namespace: auth
data:
config.yaml: |
issuer: http://dex.auth.svc.cluster.local:5556/dex
storage:
type: kubernetes
config:
inCluster: true
web:
http: 0.0.0.0:5556
logger:
level: "debug"
format: text
oauth2:
skipApprovalScreen: true
enablePasswordDB: true
staticPasswords:
- email: admin@kubeflow.org
hash: $2y$10$Yb9WVbn8pzVSM6fBgKdFae1Bh6Z.XTihi7bNu3sB6/h5bt1JuUOgq
username: admin
userID: 9cb67307-fd6d-4441-9b59-52acd78f4c9e
staticClients:
- id: kubeflow-oidc-authservice
redirectURIs: ["/login/oidc"]
name: 'Dex Login Application'
secret: pUBnBOY80SnXgjibTYM9ZWNzY2xreNGQok 환경 설정에서 enablePasswordDB 값이 true인 경우, Dex는 서비스 기동 시 configmap 에서 staticPasswords 에 정의된 사용자 목록을 내부 저장소에 저장합니다. 따라서 staticPasswords에 email, hash, username, userID 로 구성된 신규 사용자 값을 추가하게 되면 초기 사용자 이외에도 사용자를 자유롭게 추가하여 Kubeflow 서비스 이용이 가능합니다.
사용자를 추가하기 위한 속성값은 다음과 같이 정의할 수 있습니다.
| 파라미터 | 설명 |
|---|---|
| 일반적인 E-mail 형식의 값 | |
| hash | Bcrypt 알고리즘으로 암호화 된 사용자 암호 값이며 Bcrypt 알고리즘으로 생성된 Hash 값을 직접 입력
|
| username | 사용자 이름
|
| userID | 유일하게 식별될 수 있는 ID 값
|
kubectl을 사용할 수 있는 노드에서 다음 명령어를 이용해 dex configmap의 수정 화면으로 진입합니다.
kubectl edit configmap dex -n authkubectl edit configmap dex -n authstaticPasswords:
- email: admin@kubeflow.org
hash: $2y$10$Yb9WVbn8pzVSM6fBgKdFae1Bh6Z.XTihi7bNu3sB6/h5bt1JuUOgq
username: admin
userID: 9cb67307-fd6d-4441-9b59-52acd78f4c9e
- email: sds@samsung.com
hash: $2y$12$0g5.y86jnrt0v6In5NRCZ.YVuvrAUQ6j/RJYO3rV.kNulaDALOKfq
username: sds
userID: 8961d517-3498-4148-90c9-7e442ee91154staticPasswords:
- email: admin@kubeflow.org
hash: $2y$10$Yb9WVbn8pzVSM6fBgKdFae1Bh6Z.XTihi7bNu3sB6/h5bt1JuUOgq
username: admin
userID: 9cb67307-fd6d-4441-9b59-52acd78f4c9e
- email: sds@samsung.com
hash: $2y$12$0g5.y86jnrt0v6In5NRCZ.YVuvrAUQ6j/RJYO3rV.kNulaDALOKfq
username: sds
userID: 8961d517-3498-4148-90c9-7e442ee91154configmap의 staticPasswords 값은 Dex 서비스가 기동되는 시점에 반영되기 때문에 Dex 서비스를 다음 명령어로 재기동합니다.
kubectl rollout restart deployment dex -n authkubectl rollout restart deployment dex -n auth신규 사용자 정보를 이용해 로그인을 시도합니다
정상적으로 로그인 되어 새로운 Namespace(profile)을 생성하는 화면으로 전환되는것을 확인합니다.
위 내용은 Kubeflow 공식 사이트를 참고하여 작성하였습니다. 자세한 내용은 Kubeflow Profiles 참고하세요.
Kubeflow Jupyter Notebook의 Custom Image 활용방법
Kubeflow의 Notebook Life Cycle을 관리하는 Kubeflow Notebook Controller에서 Custom Image를 사용하기 위해서는 몇 가지 요구사항을 만족해야 합니다.
Kubeflow는 Notebook 이미지가 실행되면 Jupyter가 자동으로 시작되는 것으로 인식합니다. 그래서 컨테이너 이미지에 Jupyter를 시작하는 기본 명령을 설정해야 합니다.
다음은 Dockerfile에 포함해야 하는 내용의 예시입니다.
ENV NB_PREFIX /
CMD ["sh","-c", "jupyter notebook --notebook-dir=/home/${NB_USER} --ip=0.0.0.0 --no-browser --allow-root --port=8888 --NotebookApp.token='' --NotebookApp.password='' --NotebookApp.allow_origin='*' --NotebookApp.base_url=${NB_PREFIX}"]ENV NB_PREFIX /
CMD ["sh","-c", "jupyter notebook --notebook-dir=/home/${NB_USER} --ip=0.0.0.0 --no-browser --allow-root --port=8888 --NotebookApp.token='' --NotebookApp.password='' --NotebookApp.allow_origin='*' --NotebookApp.base_url=${NB_PREFIX}"]위 항목을 설명하면 아래와 같습니다.
| 파라미터 | 설명 |
|---|---|
--notebook-dir=/home/jovyan | 작업 디렉토리 설정
|
--ip=0.0.0.0 | Jupyter Notebook이 모든 IP에서 수신하도록 허용 |
--allow-root | Jupyter Notebook을 사용자가 root로 실행하도록 허용 |
--port=8888 | Port 설정 |
--NotebookApp.token=’’ –NotebookApp.password=’’ | Jupyter 인증 비활성화
|
--NotebookApp.allow_origin=’*’ | Allow origin |
--NotebookApp.base_url=NB_PREFIX | Base URL 설정 |
Custom Image 생성은 tesorflow notebook image를 생성하는 Dockerfile을 참고하여 생성할 수 있습니다.
- https://github.com/kubeflow/kubeflow/blob/v1.2.0/components/tensorflow-notebook-image/Dockerfile 참고하세요.
Notebook Servers 페이지에서 +NEW SERVER 버튼을 클릭하세요.
일단 Custom Image를 생성했다면 kubeflow Notebook Server 화면에서 Custom Image를 체크하고, Custom Image의 주소 를 입력하여 새로운 Notebook Server를 생성합니다.
위 내용은 Kubeflow 공식 사이트를 참고하여 작성하였습니다.
- 자세한 내용은 Kubeflow 공식 사이트의 Kubeflow Notebooks > Container Images 문서를 확인하세요.




