AI Platform 파이프라인은 Google Kubernetes Engine의 TensorFlow 확장으로 Kubeflow Pipelines를 설정하는 어려움을 줄입니다. AI Platform 파이프라인 클러스터를 업그레이드하려면 기존 AI Platform 파이프라인 클러스터를 삭제한 후 동일한 스토리지 설정을 사용하여 다시 설치해야 합니다. 이 가이드에서는 다음을 설명합니다.
- 클러스터에서 사용하는 스토리지 방법을 확인하는 방법
- 클러스터를 업그레이드하는 데 필요한 정보를 수집하는 방법
- AI Platform 파이프라인 클러스터를 Kubeflow Pipelines의 최신 출시 버전 이상으로 업그레이드하는 데 필요한 단계
클러스터 업그레이드 준비
AI Platform 파이프라인 클러스터를 업그레이드하는 프로세스는 클러스터가 파이프라인 아티팩트와 메타데이터를 저장하는 데 사용하는 방법에 따라 다릅니다. 다음 안내를 따라 AI Platform 파이프라인 클러스터가 파이프라인 아티팩트와 메타데이터를 저장하는 위치를 결정합니다.
Google Cloud Console에서 AI Platform 파이프라인을 엽니다.
AI Platform 파이프라인 클러스터 행에서 이름, 클러스터, 영역, 네임스페이스 열의 값을 기록합니다. 이 정보는 다음 단계에서 사용됩니다.
Cloud Shell 세션을 엽니다.
Cloud Shell이 Google Cloud Console 하단의 프레임에 열립니다.
다음 명령어를 실행하여 GKE 클러스터에 대한 액세스 권한이 있는
kubectl
을 구성하고 컨텍스트를 Kubeflow Pipelines가 설치된 네임스페이스로 설정합니다.gcloud container clusters get-credentials CLUSTER_NAME --zone=ZONE kubectl config set-context --current --namespace=NAMESPACE
다음을 바꿉니다.
- CLUSTER_NAME: 이전 단계에서 기록한 GKE 클러스터의 이름입니다.
- ZONE: 이전 단계에서 기록한 GKE 클러스터가 상주하는 영역입니다.
- NAMESPACE: 이전 단계에서 기록한 Kubeflow Pipelines가 설치된 네임스페이스입니다.
AI Platform 파이프라인은 관리형 스토리지 서비스나 클러스터 내 영구 디스크를 사용하여 클러스터의 파이프라인 아티팩트 및 메타데이터를 저장합니다. 클러스터를 업그레이드하는 경우 현재 AI Platform 파이프라인 클러스터에서 사용하는 동일한 스토리지 설정으로 AI Platform 파이프라인을 다시 설치해야 합니다.
Cloud Shell에서 다음 명령어를 실행하여 클러스터가 클러스터 내 스토리지를 통해 배포되었는지 확인합니다.
kubectl get pvc -o json | jq -r '.items[].metadata.name'
이 명령어는 Google Kubernetes Engine 클러스터의 영구 볼륨 클레임(PVC)을 나열합니다.
- 이 목록에 mysql-pv-claim 및 minio-pvc가 포함되면 AI Platform 파이프라인 클러스터는 클러스터 내 스토리지를 통해 배포된 것입니다. 클러스터 내 스토리지를 사용하는 AI Platform 파이프라인 클러스터 업그레이드
- 그렇지 않으면 클러스터가 관리형 스토리지를 통해 배포된 것입니다. 관리형 스토리지를 사용하는 AI Platform 파이프라인 클러스터 업그레이드
관리형 스토리지를 사용하는 AI Platform 파이프라인 클러스터 업그레이드
다음 안내를 따라 AI Platform 파이프라인 클러스터의 아티팩트와 메타데이터를 백업하고 클러스터를 Kubeflow Pipelines의 최신 출시 버전 이상으로 업그레이드합니다.
Kubeflow Pipelines 클러스터를 업그레이드하는 경우 동일한 스토리지 구성을 다시 사용해야 합니다. 클러스터가 관리형 스토리지를 통해 배포된 경우 다음 안내를 따라 클러스터를 업그레이드하는 데 필요한 구성 세부정보를 찾습니다.
Cloud Shell에서 다음 명령어를 실행하여 클러스터가 파이프라인 아티팩트를 저장하는 버킷의 이름을 가져옵니다.
kubectl get configmap workflow-controller-configmap -o json | \ jq -r '.data.config | capture("bucket: '"'(?<name>.*?)'"'").name'
Cloud Shell에서 다음 명령어를 실행하여 클러스터가 파이프라인 메타데이터를 저장하는 Cloud SQL 인스턴스의 인스턴스 연결 이름을 가져옵니다.
kubectl get deployments cloudsqlproxy -o json | \ jq -r '.spec.template.spec.containers[].command[] | capture("instances=(?<name>.*)=").name'
Kubeflow Pipelines에서는 MySQL 데이터베이스 두 개를 사용합니다. Cloud Shell에서 다음 명령어를 실행하여 클러스터 데이터베이스의 데이터베이스 프리픽스를 가져옵니다.
kubectl get configmap metadata-mysql-configmap -o json | \ jq -r '.data.MYSQL_DATABASE | capture("(?<prefix>.*?)_metadata").prefix'
또한 Kubeflow Pipelines에서 Cloud SQL 인스턴스에 연결하는 데 사용할 수 있는
ALL
권한을 사용하여 MySQL 계정의 사용자 이름과 비밀번호를 지정해야 합니다. 클러스터에서 사용하는 MySQL 사용자 계정을 모르는 경우 Cloud SQL을 사용하여 MySQL 사용자를 만듭니다.
Cloud SQL을 사용하여 AI Platform 파이프라인 클러스터의 MySQL 데이터베이스 백업을 만듭니다.
Google Cloud Console에서 AI Platform 파이프라인을 엽니다.
다음 안내를 따라 AI Platform 파이프라인 클러스터를 삭제합니다. AI Platform 파이프라인 클러스터를 업그레이드하려면 동일한 관리형 스토리지 설정으로 Kubeflow Pipelines를 다시 설치해야 합니다.
AI Platform 파이프라인 클러스터 체크박스를 선택합니다.
AI Platform Pipelines 툴바에서 삭제를 클릭합니다. 클러스터에서 Kubeflow Pipelines 삭제 대화상자가 나타납니다.
삭제를 클릭합니다. AI Platform 파이프라인 클러스터를 삭제하는 데 몇 분 정도 걸릴 수 있습니다.
다음 안내를 따라 Kubeflow Pipelines를 다시 설치합니다.
AI Platform Pipelines 툴바에서 새 인스턴스를 클릭합니다. Google Cloud Marketplace에서 Kubeflow Pipelines가 열립니다.
구성을 클릭합니다. Kubeflow Pipelines 배포를 구성할 수 있는 양식이 열립니다.
Kubeflow Pipelines를 배포할 클러스터를 선택합니다. 이 클러스터는 이전 AI Platform 파이프라인 인스턴스가 배포된 동일한 GKE 클러스터일 필요는 없습니다.
앱 인스턴스 이름 상자에 이전 Kubeflow Pipelines 인스턴스에서 사용한 애플리케이션 인스턴스 이름을 입력합니다.
네임스페이스는 대규모 GKE 클러스터에서 리소스를 관리하는 데 사용됩니다. 클러스터에서 네임스페이스를 사용하지 않으려면 네임스페이스 드롭다운 목록에서 기본을 선택합니다.
GKE 클러스터에서 네임스페이스를 사용하려면 네임스페이스 드롭다운 목록을 사용하여 네임스페이스를 만듭니다. 네임스페이스를 만들려면 다음 안내를 따르세요.
네임스페이스 드롭다운 목록에서 네임스페이스 만들기를 선택합니다. 새 네임스페이스 이름 상자가 나타납니다.
새 네임스페이스 이름에 네임스페이스 이름을 입력합니다.
네임스페이스에 대해 자세히 알아 보려면 네임스페이스로 Kubernetes 구성에 대한 블로그 게시물을 읽어보세요.
관리형 스토리지를 사용하면 Cloud SQL과 Cloud Storage를 사용하여 ML 파이프라인의 메타데이터 및 아티팩트를 저장할 수 있습니다. 관리형 스토리지 사용을 선택하고 다음 정보를 입력합니다.
아티팩트 스토리지 Cloud Storage 버킷: 이전 단계에서 찾은 버킷 이름을 지정합니다.
Cloud SQL 인스턴스 연결 이름: 이전 단계에서 찾은 인스턴스 연결 이름을 지정합니다.
데이터베이스 사용자 이름: MySQL 인스턴스에 연결하는 경우 사용할 Kubeflow Pipelines의 데이터베이스 사용자 이름을 지정합니다. 현재 데이터베이스 사용자에게 관리형 스토리지로 Kubeflow Pipelines를 배포할 수 있는
ALL
MySQL 권한이 있어야 합니다. 이 필드를 비워두면 기본값이 root로 설정됩니다.데이터베이스 비밀번호: MySQL 인스턴스에 연결하는 경우 사용할 Kubeflow Pipelines의 데이터베이스 비밀번호를 지정합니다. 이 필드를 비워두면 Kubeflow Pipelines가 비밀번호를 제공하지 않고 데이터베이스에 연결하므로 지정한 사용자 이름에 비밀번호가 필요할 때 실패합니다.
데이터베이스 이름 프리픽스: 이전 단계에서 찾은 데이터베이스 이름 프리픽스를 지정합니다.
배포를 클릭합니다. 이 단계를 완료하는 데 몇 분 정도 걸릴 수 있습니다.
파이프라인 대시보드에 액세스하려면 Google Cloud 콘솔에서 AI Platform 파이프라인을 엽니다.
그런 다음 AI Platform 파이프라인 인스턴스의 파이프라인 대시보드 열기를 클릭합니다.
클러스터 내 스토리지를 사용하는 AI Platform 파이프라인 클러스터 업그레이드
다음 안내를 따라 AI Platform 파이프라인 클러스터의 아티팩트와 메타데이터를 백업하고 클러스터를 Kubeflow Pipelines의 최신 출시 버전 이상으로 업그레이드합니다.
AI Platform 파이프라인 클러스터의 메타데이터와 아티팩트 스토리지를 백업합니다. 클러스터 내 스토리지를 사용하면 파이프라인 아티팩트와 메타데이터가 영구 볼륨 클레임으로 GKE 클러스터에 연결된 Compute Engine 영구 디스크에 저장됩니다.
이 태스크에는 다음과 같은 권한이 있어야 합니다.
- 프로젝트에 대한
compute.disks.create
- 소스 디스크에 대한
compute.disks.useReadOnly
권한
예를 들어
roles/compute.storageAdmin
역할은 이러한 권한을 제공합니다. ID 및 액세스 관리 권한 및 역할 부여 자세히 알아보기- 프로젝트에 대한
Cloud Shell에서 다음 명령어를 실행하여 클러스터의 PVC와 필요한 경우 PVC의 Compute Engine 영구 디스크 이름을 나열합니다.
kubectl get pv -o json | \ jq -r '.items[] | .spec.claimRef.name + " - disk name = " + .spec.gcePersistentDisk.pdName'
클러스터가 클러스터 내 스토리지를 사용하는 경우 이 목록에 mysql-pv-claim 및 minio-pvc PVC의 영구 디스크 이름이 포함되어야 합니다.
파이프라인 아티팩트와 메타데이터를 백업하려면 Cloud Shell에서 mysql-pv-claim 및 minio-pvc 영구 디스크에 다음 명령어를 실행합니다.
gcloud compute disks create target-disk-name --zone=ZONE --source-disk=source-disk-name
다음을 바꿉니다.
- target-disk-name: 백업 디스크 이름을 지정합니다.
- ZONE: 클러스터가 있는 영역을 지정합니다.
- source-disk-name: 백업할 영구 디스크의 이름을 지정합니다.
Google Cloud Console에서 AI Platform 파이프라인을 엽니다.
다음 안내를 따라 GKE 클러스터를 삭제하지 않고 AI Platform 파이프라인 클러스터를 삭제합니다. AI Platform 파이프라인 클러스터를 업그레이드하려면 동일한 GKE 클러스터에 Kubeflow Pipelines를 다시 설치해야 합니다.
AI Platform 파이프라인 클러스터 체크박스를 선택합니다.
AI Platform Pipelines 툴바에서 삭제를 클릭합니다. 클러스터에서 Kubeflow Pipelines 삭제 대화상자가 나타납니다.
삭제를 클릭합니다. AI Platform 파이프라인 클러스터를 삭제하는 데 몇 분 정도 걸릴 수 있습니다.
다음 안내를 따라 기존 GKE 클러스터에 Kubeflow Pipelines를 다시 설치합니다.
AI Platform Pipelines 툴바에서 새 인스턴스를 클릭합니다. Google Cloud Marketplace에서 Kubeflow Pipelines가 열립니다.
구성을 클릭합니다. Kubeflow Pipelines 배포를 구성할 수 있는 양식이 열립니다.
클러스터 드롭다운 목록에서 Kubeflow Pipelines의 이전 인스턴스가 배포된 클러스터를 선택합니다.
Kubeflow Pipelines의 이전 인스턴스가 배포된 네임스페이스를 선택합니다.
앱 인스턴스 이름 상자에 이전 Kubeflow Pipelines 인스턴스에서 사용한 애플리케이션 인스턴스 이름을 입력합니다.
배포를 클릭합니다. 이 단계를 완료하는 데 몇 분 정도 걸릴 수 있습니다.
파이프라인 대시보드에 액세스하려면 Google Cloud 콘솔에서 AI Platform 파이프라인을 엽니다.
그런 다음 AI Platform 파이프라인 인스턴스의 파이프라인 대시보드 열기를 클릭합니다.
다음 단계
- ML 프로세스를 파이프라인으로 조정
- ML 파이프라인을 실행하는 방법에 대해 알아보세요.
- Kubeflow Pipelines SDK를 사용하여 AI Platform 파이프라인 클러스터에 연결 방법 알아보기