ML 진단을 위한 GKE 구성
ML 워크로드에 Google Kubernetes Engine (GKE)을 사용하는 경우 이 가이드를 사용하여 GKE 클러스터를 구성하고 필요한 GKE 아티팩트를 설치하세요.
워크로드 구성은 주문형 프로파일링을 사용하는지 아니면 프로그래매틱 프로파일링을 사용하는지에 따라 다릅니다.
- 주문형 프로파일링:
connection-operator을(를) 설치해야 합니다. - 프로그래매틱 프로파일링:
injection-webhook을 설치하고, 워크로드에 라벨을 지정하고, ML 진단 SDK를 사용해야 합니다.
1.35.0-gke.3065000 이후 버전의 GKE를 사용하는 경우 단일 gcloud CLI 명령어로 ML 진단을 위한 GKE 클러스터를 설정할 수 있습니다. 자세한 내용은 gcloud CLI로
설정을 참조하세요.
1.35.0-gke.3065000 이전 버전의 GKE의 경우 cert-manager, injection-webhook, connection-operator 아티팩트를 설치하도록 GKE 클러스터를 수동으로 구성해야 합니다. 자세한 내용은
수동 설치를 참조하세요.
gcloud CLI로 설정
1.35.0-gke.3065000 이후 버전의 GKE의 경우 다음 gcloud CLI 명령어 중 하나를 사용하여 필요한 ML 진단 구성요소 (connection-operator 및 injection-webhook 모두)를 GKE 클러스터에 배포합니다.
새 GKE 클러스터의 경우:
gcloud beta container clusters create CLUSTER_NAME --enable-managed-mldiagnostics
기존 GKE 클러스터의 경우:
gcloud beta container clusters update CLUSTER_NAME --enable-managed-mldiagnostics
ML 진단을 사용 중지하려면 다음을 사용하세요.
gcloud beta container clusters update CLUSTER_NAME --no-enable-managed-mldiagnostics
GKE Google Cloud 콘솔을 통해 gcloud CLI 명령어를 사용 설정할 수도 있습니다.
새 GKE 클러스터의 경우 기능 관리자 > 관리형 머신러닝 진단 으로 이동합니다.
기존 GKE 클러스터의 경우 클러스터로 이동하여 클러스터 이름을 선택하고 수정으로 이동한 후 기능에서 관리형 머신러닝 진단 을 수정합니다.
ML 진단을 위한 GKE 클러스터를 설정하는 gcloud CLI 명령어에 대한 자세한 내용은 다음 API 참조 페이지의 enable-managed-mldiagnostics 플래그를 참조하세요.
수동 설치
1.35.0-gke.3065000 이전 버전의 GKE의 경우 다음을 설치하도록 GKE 클러스터를 수동으로 구성해야 합니다.
cert-manager:injection-webhook의 필수사항입니다.injection-webhook: SDK에 필요한 메타데이터를 제공합니다.JobSet,RayJob,LeaderWorkerSet과 같은 일반적인 ML Kubernetes 워크로드를 지원합니다.connection-operator: GKE의 주문형 프로파일링을 위한 것입니다.injection-webhook과 함께connection-operator를 GKE 클러스터에 배포하면 주문형 캡처를 트리거할 때 프로파일링 서버가 실행되는 대상 포드에 프로파일링 요청이 초기화됩니다.
Google Kubernetes Engine 설정에 대한 자세한 내용은 Google Kubernetes Engine 클러스터 구성을 참조하세요.
Cert-manager
cert-manager 는 클러스터의 인증서 컨트롤러 역할을 하며 애플리케이션이 안전하고 인증서가 실수로 만료되지 않도록 합니다.
Helm을 사용하여 다음을 설치합니다.
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install \
cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--version v1.13.0 \
--set installCRDs=true \
--set global.leaderElection.namespace=cert-manager \
--timeout 10m
Injection-webhook
injection-webhook은 메타데이터를 SDK에 전달합니다. helm upgrade --install을 사용하여 처음으로 설치하거나 기존 설치를 업그레이드합니다.
Helm을 사용하여 다음을 설치합니다.
helm upgrade --install mldiagnostics-injection-webhook \
--namespace=gke-mldiagnostics \
--create-namespace \
--version 0.25.0 \
oci://us-docker.pkg.dev/ai-on-gke/mldiagnostics-webhook-and-operator-helm/mldiagnostics-injection-webhook
Connection-operator
connection-operator는 GKE에서 주문형 프로파일링을 사용 설정합니다. 다음 표를 사용하여 올바른 mldiagnostics-connection-operator 버전을 찾으세요.
| JAX 버전 | Helm 차트 버전 |
|---|---|
| 0.8.x | 0.24.0 |
| 0.9.x+ | 0.24.0+ |
Helm을 사용하여 필요한 버전을 설치합니다.
JAX 0.8.x의 경우:
helm upgrade --install mldiagnostics-connection-operator \
--namespace=gke-mldiagnostics \
--create-namespace \
--version 0.24.0 \
oci://us-docker.pkg.dev/ai-on-gke/mldiagnostics-webhook-and-operator-helm/mldiagnostics-connection-operator \
--set 'mldiagnosticsConnectionOperator.controller.args={--metrics-bind-address=:8443,--health-probe-bind-address=:8081,--sidecar-timeout=65m,--disable-hostname-override}'
JAX 0.9.x+의 경우:
helm upgrade --install mldiagnostics-connection-operator \
--namespace=gke-mldiagnostics \
--create-namespace \
--version 0.24.0 \
oci://us-docker.pkg.dev/ai-on-gke/mldiagnostics-webhook-and-operator-helm/mldiagnostics-connection-operator
워크로드에 라벨 지정
프로그래매틱 프로파일링의 경우 injection-webhook을 트리거하여 포드에 메타데이터를 삽입해야 합니다. 워크로드를 배포하기 전에 워크로드 또는 네임스페이스에 managed-mldiagnostics-gke=true 라벨을 지정합니다.
워크로드에 라벨 지정.
Jobset,LWS또는RayJob워크로드에 라벨을 지정하면 특정 워크로드에 대해 웹훅이 사용 설정됩니다. 다음은JobSet워크로드의 예입니다.apiVersion: jobset.x-k8s.io/v1alpha2 kind: JobSet metadata: name: single-host-tpu-v3-jobset2 namespace: default labels: managed-mldiagnostics-gke: "true"네임스페이스에 라벨 지정. 이렇게 하면 해당 네임스페이스 내의 모든
Jobset,LWS,RayJob워크로드에 대해 웹훅이 사용 설정됩니다.kubectl create namespace ai-workloads kubectl label namespace ai-workloads managed-mldiagnostics-gke=true