메인 콘텐츠로 건너뛰기
이 튜토리얼에서는 클러스터 관리자가 Kubernetes 클러스터에 W&B Launch를 설정하여 ML 엔지니어가 W&B에서 직접 트레이닝 워크로드를 제출하고 관리할 수 있도록 하는 방법을 안내합니다. W&B Launch를 사용하면 ML 워크로드를 Kubernetes 클러스터로 전송할 수 있으며, ML 엔지니어는 W&B 내에서 바로 Kubernetes로 이미 관리 중인 리소스를 사용할 수 있습니다. W&B는 공식 Launch 에이전트 image를 제공하며, W&B에서 유지 관리하는 Helm chart를 사용해 이를 클러스터에 배포할 수 있습니다. W&B는 Kaniko builder를 사용하여 Launch 에이전트가 Kubernetes 클러스터에서 도커 이미지를 빌드할 수 있도록 지원합니다. Launch 에이전트용 Kaniko를 설정하는 방법이나 작업 빌드를 비활성화하고 사전 빌드된 도커 이미지만 사용하는 방법을 알아보려면 고급 에이전트 설정을 참조하세요.
W&B Launch 에이전트 Helm chart를 설치하고 적용 또는 업그레이드하려면, Kubernetes 리소스를 생성, 업데이트, 삭제할 수 있는 충분한 권한이 있는 클러스터에 대해 kubectl 액세스 권한이 있어야 합니다. 일반적으로는 cluster-admin 권한이 있는 사용자 또는 이에 상응하는 권한을 가진 커스텀 역할이 필요합니다.

Kubernetes용 큐 설정

Launch 큐는 에이전트가 각 작업을 실행할 때 사용하는 Kubernetes 워크로드 사양을 정의합니다. Kubernetes 대상 리소스용 Launch 큐 설정은 Kubernetes job spec 또는 Kubernetes custom resource 사양과 유사한 형태를 띱니다. Launch 큐를 생성할 때 Kubernetes 워크로드 리소스 사양의 거의 모든 측면을 제어할 수 있습니다.
보안상의 이유로, W&B는 다음 리소스가 지정되지 않은 경우 이를 Launch 큐에 주입합니다:
  • securityContext
  • backOffLimit
  • ttlSecondsAfterFinished
다음 YAML 스니펫은 이러한 값이 Launch 큐에 어떻게 표시되는지 보여줍니다:
example-spec.yaml

큐 만들기

W&B App에서 컴퓨팅 리소스로 Kubernetes를 사용하는 큐를 생성합니다:
  1. Launch 페이지로 이동합니다.
  2. Create Queue 버튼을 클릭합니다.
  3. 큐를 생성할 Entity를 선택합니다.
  4. Name 필드에 큐 이름을 입력합니다.
  5. ResourceKubernetes를 선택합니다.
  6. Configuration 필드에 Kubernetes용 큐 설정에서 설정한 Kubernetes job 워크플로 사양 또는 custom resource 사양을 입력합니다.

Helm으로 Launch 에이전트 구성하기

큐가 준비되면 다음으로 큐에서 작업을 가져와 클러스터에서 실행하는 Launch 에이전트를 배포합니다. W&B에서 제공하는 Helm chart를 사용해 Kubernetes 클러스터에 Launch 에이전트를 배포하세요. values.yaml 파일에서 Launch 에이전트의 동작을 제어할 수 있습니다. values.yaml 파일의 launchConfig 키 안에는 일반적으로 Launch 에이전트 설정 파일(~/.config/wandb/launch-config.yaml)에 정의하는 내용을 지정하세요. 예를 들어, Kaniko 도커 이미지 builder를 사용하는 EKS에서 Launch 에이전트를 실행할 수 있는 Launch 에이전트 설정이 있다고 가정해 보겠습니다. [QUEUE-NAME], [MAX-CONCURRENT-JOBS], [MY-REGISTRY-URI], [S3-BUCKET-URI]를 사용자 환경에 맞는 값으로 바꾸세요:
launch-config.yaml
values.yaml 파일에서는 다음과 같이 표시될 수 있습니다. [QUEUE-NAME], [MAX-CONCURRENT-JOBS], [AWS-REGION], [MY-REGISTRY-URI], [S3-BUCKET-URI]를 사용자 환경에 맞는 값으로 바꾸세요:
values.yaml
레지스트리, 환경, 및 필수 에이전트 권한에 대한 자세한 내용은 고급 에이전트 설정을 참조하세요.