安装 Data Science Pipelines

Data Science Pipelines Operator 以 OLM Operator 形式交付,并从平台 OperatorHub 安装。

前提条件

  • ACP version: v4.0 or later(已在 v4.3 / Kubernetes 1.34 上验证)。

  • 目标集群架构为 linux/amd64(operator 及其镜像也提供 linux/arm64)。

  • 目标集群上可用 Operator Lifecycle Manager (OLM)(由 ACP 提供)。

  • 目标集群中不得存在共享的 Kubeflow Pipelines 安装(kfp-operator——DSPO 与其互斥(参见 Introduction)。

  • Argo Workflow CRD。 每个 DSPA 都会运行一个 Argo Workflow controller 和 KFP v2 driver/launcher,它们需要 workflows.argoproj.io CRD。DSPO 的 bundle 中包含这些 CRD(以避免在已运行 Argo 的集群上产生 OLM CRD 所有权冲突)。请在集群安装时从 operator 源码树一次性安装它们:

    kubectl apply -k config/argo

    如果集群中已经存在 workflows.argoproj.io,则可跳过此步骤(例如,已安装现有的 Argo)。

  • Alauda ServiceMesh v2 (Istio)——仅在你计划通过 Istio VirtualService 公开 DSPA APIServer 时才需要(EXTERNAL_ROUTE_PROVIDER=virtualservice)。virtualservices.networking.istio.io 必须处于 Established 状态。

上架 Operator Package

customer portal / Marketplace 下载 Data Science Pipelines Operator bundle,然后按照 Upload Packages 上架软件包。

INFO

operator bundle 会在 CSV 的 relatedImages 中记录所有运行时镜像(operator、KFP APIServer / driver / launcher / persistence-agent / scheduled-workflow、Argo workflow-controller 和 argoexec、MLMD、MariaDB,以及 pipeline runtime image),因此 violet 版本会将它们重新定位到平台 registry 中。这使得 operator 可以在离线集群中安装,而无需访问 quay.io / docker.io

安装 Operator

Administrator 视图中:

  1. 单击 Marketplace / OperatorHub
  2. 在控制台顶部,从 Cluster 下拉列表中选择目标集群。
  3. 搜索并选择 Data Science Pipelines Operator,然后单击 Install
  4. 保持 Channel 不变(stable)。
  5. 确认 Version 与你要安装的版本一致(例如 v2.15.1)。
  6. 保持 Installation Location 不变——默认是 data-science-pipelines-operator namespace。
  7. 选择 Upgrade Strategy(生产环境建议使用 Manual)。
  8. 单击 Install

外部端点提供程序(可选)

operator 会根据各 DSPA 的 EXTERNAL_ROUTE_PROVIDER 设置公开其 APIServer,该设置配置在 Subscription 的 spec.config.env 中:

  • none(默认)——operator 不创建外部端点。APIServer 仅能在集群内访问(ds-pipeline-<name>.<namespace>.svc:8888)。当入口流量由其他方式处理时使用此选项。
  • virtualservice——operator 为每个 DSPA 创建一个 Istio VirtualService,并绑定到共享的 Istio Gateway(默认 kubeflow/kubeflow-gateway),将 /pipelines/<namespace>/<name>/... 路由到该 DSPA 的 APIServer 和 MLMD 服务。需要 ServiceMesh v2(参见前提条件)。

要使用 virtualservice 提供程序,请在创建 Subscription 时设置该环境变量(或在之后编辑它):

spec:
  config:
    env:
      - name: EXTERNAL_ROUTE_PROVIDER
        value: virtualservice
      - name: ISTIO_GATEWAY
        value: kubeflow/kubeflow-gateway
      - name: ISTIO_HOSTS
        value: "*"

验证

确认 Data Science Pipelines Operator 磁贴显示为 Installed,然后在集群上验证:

# the CSV reports Succeeded
kubectl get csv -n data-science-pipelines-operator | grep data-science-pipelines-operator

# the operator controller-manager pod is Running
kubectl get pods -n data-science-pipelines-operator

# the CRDs are registered
kubectl get crd | grep -E 'datasciencepipelinesapplications|pipelines.kubeflow.org|scheduledworkflows'

operator 默认监视所有 namespace,因此你可以在任何 project namespace 中创建 DataSciencePipelinesApplication 资源。

INFO

Succeeded 的 CSV 表示 operator controller 正在运行。KFP pipeline stack 本身只有在你创建 DataSciencePipelinesApplication 之后才会出现——参见 Create a Data Science Pipelines Application