데이터를 걷는 선비

[Kubeflow] Kubeflow 유저 추가하기(유저 분기처리하기) 본문

Machine Learning/MLOps

[Kubeflow] Kubeflow 유저 추가하기(유저 분기처리하기)

세미제로 2023. 12. 26. 21:12

 

Kubeflow를 활용하다보면 user@example.com/12341234 라는 샘플 계정을 활용하여, 테스트하는 경우가 많다.

그러나 서비스 관점에서는 사용자별 Kubeflow 기능을 분기하여 관리해야할 필요가 있다.

그렇기에 간단하게 Kubeflow의 유저를 추가하는 방법을 알아보자

 

[순서] 

  • 1) profile.yaml을 활용해 유저 프로필 생성하기
  • 참조) 프로필 생성 시 spec 하위에 resourceQuotaSpec 추가하기
  • 2) config-map.yaml을 활용해 유저 등록
  • 3) 적용 후 확인

1) profile.yaml을 활용해 유저 프로필 생성하기

kubeflow > manifests > common > dex > base 경로에 아래와 같은 yaml 파일 생성

 

apiVersion: kubeflow.org/v1beta1
kind: Profile
metadata:
    name: semizero # 생성하고 싶은 프로필의 이름(네임스페이스로 지정할 이름)
spec:
    owner:
        kind: User
        name: semizero@example.com # 생성하고 싶은 프로필의 이메일(Kubeflow로그인ID)

 

  • metadata > name: 네임스페이스로 지정할 이름
  • spec > owner > name: Kubeflow 로그인 시 사용할 ID

다음 커맨드를 통해 해당 profile을 적용한다.

kubectl apply -f semizero-profile.yaml

 

semizero라는 이름으로 namespace가 생성되어 있는 것을 확인할 수 있다.

 

 


참조) 프로필 생성 시 spec 하위에 resourceQuotaSpec 추가하기

아래와 같이 유저를 추가할 때

프로필 별 사용할 수 있는 리소스 양을 지정할 수도 있다.

apiVersion: kubeflow.org/v1beta1
kind: Profile
metadata:
    name: semizero # 생성하고 싶은 프로필의 이름(네임스페이스로 지정할 이름)
spec:
    owner:
        kind: User
        name: semizero@example.com # 생성하고 싶은 프로필의 이메일(Kubeflow로그인ID)
 	resourceQuotaSpec:
        hard:
            cpu: "2"
            memory: 2Gi
            persistentvolumeclaims: "1"
            requests.storage: "5Gi"

 


2) config-map.yaml을 활용해 유저 등록

kubeflow > manifests > common > dex > base >config-map.yaml 파일 수정하면 위에서 생성한 유저의 네임스페이스와 Kubeflow의 정보를 매핑할 수 있다.

 

 

여기서

  • username은 네임스페이스명(위에서 semizero)
  • email은 Kubeflow 로그인 ID를 의미한다.(위에서 semizero@example.com)
  • hash: 암호화된 비밀번호로 테스트 계정으로 치면 12341234의 해시 값이다.
kubectl apply -f config-map.yaml -n auth

 


3) 적용 후 확인

위와 같은 네임스페이스 및 config 설정을 적용하기 위해서는 dex를 재실행해야 한다.

kubectl rollout restart deployment dex -n auth

 

 

 

잘 적용이 되는 것을 확인할 수 있다.

Comments