kubeflow 대시보드 및 docker-registry

이권동·2023년 3월 20일
0

MLOps

목록 보기
4/4

대시보드

이전 글에서는 kubeflow 대시보드 로그인까지 진행되었다.

오늘은 kubeflow 대시보드의 각 기능에 대해서 알아보자.

대시보드에 로그인을 하면 위 기능들을 사용 할 수 있다.

대략적으로 설명을 하고 앞으로의 글에서 하나하나 자세히 사용해 볼 예정이다.

  • Home : 전체적으로 대시보드의 기능을 수행(ex 최근 노트북에서 실행한 파일, 파이프라인 등등)
  • Notebooks : 주피터 노트북 혹은 코드서버를 동작하여 kubeflow 대시보드안에서 코디을 할 수 있다.
  • Tensorboards : 파이프라인에서 바로 텐서보드로 연결하여 볼 수 있다.
  • Volumes : 네임스페이스에 할당된 볼륨을 보여준다.
  • models : inferenceservice 로 등록된 모델을 모니터링 할 수 있다.
  • AutoML : AutoML 기능을 수행 할 수있다.
  • KFP : 파이프라인을 실험 단위로 표시
  • pipelines : 파이프라인 버전 관리
  • Runs : 파이프라인이 실제로 실행되는 모니터닝
  • Recurring Runs : 이전 파이프라인을 다시 실행하거나 cron 형태로 실행하는 옵션
  • artifacts : artrifacts 들이 생성되는 시간과 minio 링크 로그

생각보다 기능이 겹치거나 서로 연동되는 부분이 많아서 잘 사용하면 학습의 End-to-End 부터 모니터링까지 전부 가능 할 것 같다.

docker-registry

docker hub를 사용하지 않을꺼면 커스텀 이미지 같은 경우는 쿠버네티스 클러스터가 전부 받을 수 있게끔 해줘야한다. 그때 docker private registry를 사용한다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: docker-registry
  namespace: default
spec:
  selector:
    matchLabels:
      app: docker-registry
  template:
    metadata:
      labels:
        app: docker-registry
    spec:
      containers:
      - name: docker-registry
        image: registry:2.7.1
        ports:
        - containerPort: 5000 #registry 기본 port
        env:
          - name : REGISTRY_STORAGE_DELETE_ENABLED
            value: "true"
        volumeMounts:
        - mountPath: /var/lib/registry #container directory
          name: docker-registry #아래에 volumes name
      volumes: #host pc volume생성
      - name: docker-registry
        persistentVolumeClaim:
          claimName: docker-registry-claim
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: docker-registry-claim
  labels:
    app: docker-registry
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 100Gi
  storageClassName: storageClassName
---
apiVersion: v1
kind: Service
metadata:
  name: docker-registry
  namespace: default
spec:
  type: NodePort
  selector:
    app: docker-registry
  ports:
    - protocol: TCP
      port: 30000
      targetPort: 5000
      nodePort: 30000
---

위 yaml을 실행하면 쿠버네티스 안에서 docker-registry.default.svc.cluster.local:30000/image/tag:version 형태로 요청하면 된다.

docker build -t testimage/start:v1 .
docker tag testimage/start:v1 docker-registry.default.svc.cluster.local:30000/start:v1
docker push docker-registry.default.svc.cluster.local:30000/start:v1

위 명령어는 도커를 빌드하고 private registory에 올리는 과정이다.

profile
배워서 효율적으로 써먹자

0개의 댓글