1.2. 파이프라인 정의
Kubeflow Pipelines SDK를 사용하면 엔드 투 엔드 머신 학습 및 데이터 파이프라인을 정의할 수 있습니다. 최신 Kubeflow Pipelines 2.0 SDK를 사용하여 Python 코드에서 데이터 사이언스 파이프라인을 빌드합니다. 파이프라인을 빌드한 후 SDK를 사용하여 IIR( Intermediate Representation) YAML 파일로 컴파일합니다. 파이프라인을 정의한 후 YAML 파일을 OpenShift AI 대시보드로 가져와 실행 설정을 구성할 수 있습니다.
FIPS 모드에서 실행되는 클러스터에서 OpenShift AI를 사용하는 경우 데이터 사이언스 파이프라인의 사용자 정의 컨테이너 이미지는 UBI 9 또는 RHEL 9를 기반으로 해야 합니다. 이렇게 하면 FIPS 승인 파이프라인 구성 요소와의 호환성을 유지하고 일치하지 않는 OpenSSL 또는 GNU C 라이브러리(glibc) 버전과 관련된 오류를 방지합니다.
Elyra tellpyterLab 확장을 사용하여 sendpyterLab 내에서 데이터 사이언스 파이프라인을 생성하고 실행할 수도 있습니다. hapyterLab에서 파이프라인 생성에 대한 자세한 내용은 pin pyterLab의 파이프라인 작업을 참조하십시오. Elyra tellpyterLab 확장에 대한 자세한 내용은 Elyra 문서를 참조하십시오.
1.2.1. Kubernetes API를 사용하여 파이프라인 정의 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes API를 사용하여 데이터 사이언스 파이프라인 및 파이프라인 버전을 정의하여 내부 데이터베이스 대신 클러스터에 사용자 정의 리소스로 저장할 수 있습니다. 이 접근 방식을 사용하면 OpenShift GitOps(Argo CD) 또는 유사한 툴을 사용하여 파이프라인 및 파이프라인 버전을 관리할 수 있지만 OpenShift AI UI(사용자 인터페이스), API 및 Kubeflow Pipelines(kfp) 소프트웨어 개발 키트(SDK)를 통해 이를 관리할 수 있습니다.
사전 요구 사항
-
이전에 사용 가능하고 파이프라인 서버 (
DataSciencePipelinesApplication사용자 정의 리소스)가 있는 데이터 과학 프로젝트를 생성했습니다. - OpenShift CLI(명령줄 인터페이스)를 설치했습니다.
프로세스
터미널 창에서 다음 명령을 실행하여 OpenShift CLI에 로그인합니다.
$ oc login -u <user_name>메시지가 표시되면 OpenShift 서버 URL, 연결 유형 및 암호를 입력합니다.
기본
데이터베이스옵션 대신 Kubernetes API 스토리지를 사용하도록 파이프라인 서버를 구성하려면 프로젝트의DataSciencePipelinesApplication(DSPA) 사용자 정의 리소스에서spec.apiServer.pipelineStore필드를kubernetes로 설정합니다.다음 명령에서 < dspa_name >을 DSPA 사용자 정의 리소스의 이름으로 바꾸고 < namespace >를 프로젝트 이름으로 교체합니다.
$ oc patch dspa <dspa_name> -n <namespace> \ --type=merge \ -p {"spec": {"apiServer": {"pipelineStore": "kubernetes"}}}주의Kubernetes API 스토리지로 변경하면 내부 데이터베이스에 저장된 기존 파이프라인에 더 이상 OpenShift AI UI 또는 REST API를 통해 액세스할 수 없습니다. 해당 파이프라인에 대한 액세스를 복원하려면
spec.apiServer.pipelineStore필드를 다시database로 변경합니다.다음 콘텐츠를 사용하여 YAML 파일에
Pipeline사용자 정의 리소스를 정의합니다.파이프라인 정의 예
apiVersion: pipelines.kubeflow.org/v2beta1 kind: Pipeline metadata: name: <pipeline_name>1 namespace: <namespace>2 spec: displayName: <pipeline_display_name>3 파이프라인 정의를 적용하여 클러스터에서
Pipeline사용자 정의 리소스를 생성합니다.다음 명령에서 < pipeline_yaml_file>을 YAML 파일의 이름으로 바꿉니다.
명령 예
$ oc apply -f <pipeline_yaml_file>.yaml다음 콘텐츠를 사용하여 YAML 파일에
PipelineVersion사용자 정의 리소스를 정의합니다.파이프라인 버전 정의 예
apiVersion: pipelines.kubeflow.org/v2beta1 kind: PipelineVersion metadata: name: <pipeline_version_name>1 namespace: <namespace>2 spec: pipelineName: <pipeline_name>3 displayName: <pipeline_version_display_name>4 description: This is the first version of the pipeline. pipelineSpec:5 # ... generated by kfp compile ...파이프라인 버전 정의를 적용하여 클러스터에서
PipelineVersion사용자 정의 리소스를 생성합니다.다음 명령에서 < pipeline_version_yaml_file>을 YAML 파일의 이름으로 바꿉니다.
명령 예
$ oc apply -f <pipeline_version_yaml_file>.yaml파이프라인 버전을 생성한 후 시스템은 더 쉽게 필터링하기 위해 다음 라벨을 파이프라인 버전에 자동으로 적용합니다.
자동 레이블의 예
pipelines.kubeflow.org/pipeline-id: <metadata.uid of the pipeline> pipelines.kubeflow.org/pipeline: <pipeline name>
검증
Pipeline사용자 정의 리소스가 성공적으로 생성되었는지 확인합니다.$ oc get pipeline <pipeline_name> -n <namespace>PipelineVersion사용자 정의 리소스가 성공적으로 생성되었는지 확인합니다.$ oc get pipelineversion <pipeline_version_name> -n <namespace>