- kubeflow
- tensorflow
- app
- C
- 오블완
- study
- datastructure
- Kubernetes
- 리눅스마스터2급
- Baekjoon
- Java
- Univ._Study
- Operating_System
- programmers
- Algorithm
- Image_classification
- cloud_computing
- SingleProject
- codingTest
- 티스토리챌린지
- Linux
- Python
- Android
- Database_Design
- c++
- Unix_System
- Artificial_Intelligence
- 2023_1st_Semester
- 자격증
- Personal_Study
코딩 기록 저장소
[쿠버플로우] 화면 커스터마이징 본문
목차
1. Kubeflow 커스터마이징
01. MLflow 설치 및 대시보드 추가하기
- 두 가지 성격의 저장소가 필요함
- DB (metadata 저장)
- Storage (Artifact 저장)
- DB를 위해 일반적으로 PostgreSQL을 사용하고, 아티팩트를 저장하기 위해 S3를 사용함
- Kubeflow는 기본적으로 저장소로 MinIO를 사용하기에 여기에 mlflow용 버킷을 만들고 사용할 수 있음
MLflow를 위한 Minio bucket 생성
- Kubeflow를 위해 이미 설치된 minio 서비스에 접속해 버킷을 생성함
kubectl port-forward -n kubeflow svc/minio-service 9000:9000
- http://localhost:9000/ 에 접속한 뒤 아래 계정으로 로그인함
- Access Key: minio
- Secret Key: minio123
- 이후 mlflow라는 이름으로 버킷을 생성함
- mlflow를 위한 artifact 저장소가 준비됨
- mlflow를 설치할 Helm 차트에서 설치를 제공해서 따로 설치를 하지 않음
MLflow 설치
- 아래 명령어로 설치를 함
kubectl create ns mlflow
kubectl create -n mlflow secret generic mlflow-secret \
--from-literal=AWS_ACCESS_KEY_ID=minio \
--from-literal=AWS_SECRET_ACCESS_KEY='minio123'
helm repo add bitnami https://charts.bitnami.com/bitnami
helm upgrade --install mlflow bitnami/mlflow -n mlflow --version 0.10.3 \
--set minio.enabled=false \
--set externalS3.host=minio-service.kubeflow \
--set externalS3.port=9000 \
--set externalS3.existingSecret=mlflow-secret \
--set externalS3.existingSecretAccessKeyIDKey="AWS_ACCESS_KEY_ID" \
--set externalS3.existingSecretKeySecretKey="AWS_SECRET_ACCESS_KEY" \
--set externalS3.bucket="mlflow" \
--set externalS3.protocol=http
- http://localhost:32429에 접속하고 로그인하면 아래와 같은 화면이 나와야 함
- username: user
- password: kubectl get secret --namespace mlflow mlflow-tracking -o jsonpath="{.data.admin-password }" | base64 -d
virtual service 생성
- Kubeflow의 Central Dashboard에서 하나의 탭을 클릭할 때 다양한 엔드포인트로 라우팅 하기 위해 VirtualService를 사용 (Jupyter, Katib, pipeline 등)
- MLflow 버튼을 클릭하면 mlflow tracker UI로 라우팅 해야 하므로 추가로 Virtual Service를 생성해야 함
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: mlflow
namespace: kubeflow
spec:
gateways:
- kubeflow/kubeflow-gateway
hosts:
- '*'
http:
- match:
- uri:
prefix: /mlflow/
rewrite:
uri: /
route:
- destination:
host: mlflow-tracking.mlflow.svc.cluster.local
port:
number: 80
kubectl apply -f mlflow_virtual_service.yaml
- /mlflow/ 라는 라우터에 접근 시 mlflow-tracking.mlflow.svc.cluster.local:80로부터 요청을 받아옴
Central Dashboard 수정
- Central Dashboard에 버튼을 추가하기 위해, configmap에 정의된 것을 수정함
kubectl edit cm centraldashboard-config -n kubeflow
- 아래와 같은 내용을 추가함
{
"type": "item",
"link": "/mlflow/",
"text": "mlflow",
"icon": "device:access-alarm"
}
- 그 후 Central Dashboard를 재시작함
kubectl rollout restart deploy centraldashboard -n kubeflow
- 다시 대시보드에 접근하여 확인함!
02. Kubeflow 대시보드 탭 삭제하기
현재 탭 확인
- 이중에서 'Endpoints'부터 'Executions'까지의 탭을 전부 삭제하고 확인해볼 예정
configmap 수정
- 'Volumes'부터 이전에 추가한 'mlflow' 사이의 탭을 전부 삭제함
kubectl edit cm centraldashboard-config -n kubeflow
- 그 후 Central Dashboard를 재시작함
kubectl rollout restart deploy centraldashboard -n kubeflow
- 다시 대시보드에 접근하면 탭이 삭제된 것을 확인할 수 있음!
'개인 공부 > 쿠버플로우' 카테고리의 다른 글
[쿠버플로우] 개념 및 구성 요소 정리 (0) | 2025.07.02 |
---|---|
[쿠버플로우] 설치 및 세팅하기 (1) | 2025.06.05 |