升级 AI Platform Pipelines 集群

AI Platform Pipelines 便于您在 Google Kubernetes Engine 上设置 Kubeflow PipelinesTensorFlow Extended。要升级您的 AI Platform Pipelines 集群,您必须移除现有的 AI Platform Pipelines 集群,然后使用相同的存储设置重新安装该集群。本指南介绍了以下内容:

  • 如何确定您的集群使用的具体存储方法。
  • 如何收集升级集群所需的信息。
  • 将 AI Platform Pipelines 集群升级到较新版本的 Kubeflow Pipelines所需的步骤。

准备升级您的集群

升级 AI Platform Pipelines 集群的具体过程取决于您的集群用来存储流水线工件和元数据的方法。请按照以下说明操作,以确定您的 AI Platform Pipelines 集群在何处存储流水线工件和元数据。

  1. 在 Google Cloud Console 中打开 AI Platform Pipelines。

    转到 AI Platform Pipelines

  2. 在 AI Platform Pipelines 集群对应的行中,记下名称集群区域命名空间列的值。在后续步骤中要用到这些信息。

  3. 打开 Cloud Shell 会话。

    打开 Cloud Shell

    Cloud Shell 在 Google Cloud Console 底部的框架中打开。

  4. 运行以下命令配置 kubectl,为其提供访问您的 GKE 集群的权限,并将上下文设置为安装 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 的命名空间。
  5. AI Platform Pipelines 使用代管的存储服务或集群上的永久性磁盘来存储集群的流水线工件和元数据。升级集群时,必须使用与当前 AI Platform Pipelines 集群相同的存储设置重新安装 AI Platform Pipelines。

    在 Cloud Shell 中运行以下命令,以检查集群是否是使用集群上的存储部署的。

    kubectl get pvc -o json | jq -r '.items[].metadata.name'
    

    此命令列出了您的 Google Kubernetes Engine 集群的永久性卷声明 (PVC)。

升级使用代管存储的 AI Platform Pipelines 集群

按照以下说明操作,以备份 AI Platform Pipelines 集群的工件和元数据,并将集群升级到 Kubeflow Pipelines 的更新版本。

  1. 升级 Kubeflow Pipelines集群时,您必须重复使用相同的存储配置。如果您的集群是使用代管存储部署的,请按照以下说明查找升级集群所需的配置详细信息。

    1. 在 Cloud Shell 中运行以下命令,以获取您的集群在其中存储流水线工件的存储分区的名称:

      kubectl get configmap workflow-controller-configmap -o json | \
      jq -r '.data.config | capture("bucket: '"'(?<name>.*?)'"'").name'
      
    2. 在 Cloud Shell 中运行以下命令,以获取您的集群在其中存储流水线元数据的 Cloud SQL 实例的实例连接名称。

      kubectl get deployments cloudsqlproxy -o json | \
      jq -r '.spec.template.spec.containers[].command[] | capture("instances=(?<name>.*)=").name'
      
    3. Kubeflow Pipelines流水线依赖于两个 MySQL 数据库。在 Cloud Shell 中运行以下命令,以获取集群数据库的数据库前缀。

      kubectl get configmap metadata-mysql-configmap -o json | \
      jq -r '.data.MYSQL_DATABASE | capture("(?<prefix>.*?)_metadata").prefix'
      
    4. 您还必须指定具有 ALL 特权的 MySQL 帐号的用户名和密码,Kubeflow Pipelines 可以使用该特权来连接到 Cloud SQL 实例。如果您不知道集群使用的是哪个 MySQL 用户帐号,请使用 Cloud SQL 创建一个 MySQL 用户

      详细了解 MySQL 用户

  2. 使用 Cloud SQL 创建 AI Platform Pipelines集群的 MySQL 数据库的备份

  3. 在 Google Cloud Console 中打开 AI Platform Pipelines。

    转到 AI Platform Pipelines

  4. 按照以下说明删除您的 AI Platform Pipelines 集群。要升级 AI Platform Pipelines 集群,必须使用相同的代管存储设置重新安装 Kubeflow Pipelines。

    1. 选中您的 AI Platform Pipelines 集群对应的复选框。

    2. 在 AI Platform Pipelines 工具栏中,点击删除。 此时会显示从集群删除 Kubeflow Pipelines 对话框。

    3. 点击删除。AI Platform Pipelines 集群可能需要几分钟时间才能删除完成。

  5. 按照以下说明重新安装 Kubeflow Pipelines。

    1. 在 AI Platform Pipelines 工具栏中,点击新建实例。 Kubeflow Pipelines 将在 Google Cloud Marketplace 中打开。

    2. 点击配置。系统随即会打开一个表单,供您配置 Kubeflow Pipelines部署。

    3. 选择要将 Kubeflow Pipelines 部署到其中的集群。此集群不必与之前的 AI Platform Pipelines 实例部署到的 GKE 集群相同。

      了解如何确保为 AI Platform PipelinesAI 平台管道正确配置了 GKE 集群

    4. 应用实例名称框中,输入您之前的 Kubeflow Pipelines 实例使用的应用实例名称。

    5. 命名空间用于管理大型 GKE 集群中的资源。如果您不打算在集群中使用命名空间,请在命名空间下拉列表中选择默认

      如果您打算在 GKE 集群中使用命名空间,请使用命名空间下拉列表创建命名空间。如需创建命名空间,请执行以下操作:

      1. 命名空间下拉列表中选择创建命名空间。此时会显示新命名空间名称框。

      2. 新建命名空间名称中输入命名空间名称。

      如需详细了解命名空间,请参阅有关使用命名空间组织 Kubernetes 的博文。

    6. 借助代管存储,您可以使用 Cloud SQL 和 Cloud Storage 存储 ML 流水线的元数据和工件。选择使用代管存储空间,并提供以下信息:

      • 工件存储 Storage Cloud Storage 存储分区:指定您在上一步中找到的存储分区名称。

      • Cloud SQL 实例连接名称:指定您在上一步中找到的实例连接名称。

      • 数据库用户名:指定在连接到 MySQL 实例时,Kubeflow Pipelines 要使用的数据库用户名。目前,数据库用户必须具有 ALL MySQL 特权才能部署具有代管存储的 Kubeflow Pipelines。如果将此字段留空,则此值默认为 root

        详细了解 MySQL 用户

      • 数据库密码:指定在连接到 MySQL 实例时,Kubeflow Pipelines 要使用的数据库密码。如果将此字段留空,Kubeflow Pipelines 将在不提供密码的情况下连接到数据库;如果您指定的用户名需要密码,该操作将失败。

      • 数据库名称前缀:指定您在上一步中找到的数据库名称前缀。

    7. 点击部署。此步骤可能需要几分钟时间。

    8. 要访问流水线信息中心,请在 Cloud Console 中打开 AI Platform Pipelines。

      转到 AI Platform Pipelines

      然后,如需查看您的 AI Platform Pipelines 实例,请点击打开流水线信息中心

升级使用集群上的存储的 AI Platform Pipelines 集群

按照以下说明操作,以备份 AI Platform Pipelines 集群的工件和元数据,并将集群升级到 Kubeflow Pipelines 的更新版本。

  1. 备份 AI Platform Pipelines 集群的元数据和工件存储。使用集群上的存储,您的流水线工件和元数据将存储在 Compute Engine 永久性磁盘上,这些磁盘将作为永久性卷声明附加到您的 GKE 集群。

    1. 为了执行此任务,您必须具有以下权限:

      • 针对项目的 compute.disks.create 权限
      • 针对来源磁盘的 compute.disks.useReadOnly 权限

      例如,roles/compute.storageAdmin 角色可提供这些权限。详细了解如何授予 Identity and Access Management身份和访问管理权限和角色

    2. 在 Cloud Shell 中运行以下命令,以列出您的集群的 PVC,并在适当的情况下列出 PVC 的 Compute Engine 永久性磁盘名称。

      kubectl get pv -o json | \
      jq -r '.items[] | .spec.claimRef.name + " -  disk name = " + .spec.gcePersistentDisk.pdName'
      

      如果您的集群使用集群上的存储,则此列表应包含 mysql-pv-claimminio-pvc PVC 的永久性磁盘名称。

    3. 如需备份流水线工件和元数据,请在 Cloud Shell 中针对mysql-pv-claimminio-pvc 永久性磁盘运行以下命令。

      gcloud compute disks create target-disk-name --zone=ZONE --source-disk=source-disk-name
      

      替换以下内容:

      • target-disk-name:指定备份磁盘的名称。
      • ZONE:指定集群所在的区域。
      • source-disk-name:指定要备份的永久性磁盘的名称。

      详细了解如何克隆永久性磁盘

  2. 在 Google Cloud Console 中打开 AI Platform Pipelines。

    转到 AI Platform Pipelines

  3. 按照以下说明删除您的 AI Platform Pipelines 集群,但不删除 GKE 集群。如需升级您的 AI Platform Pipelines 集群,您必须在同一 GKE 集群上重新安装 Kubeflow Pipelines。

    1. 选中您的 AI Platform Pipelines 集群对应的复选框。

    2. 在 AI Platform Pipelines 工具栏中,点击删除。 此时会显示从集群删除 Kubeflow Pipelines 对话框。

    3. 点击删除。AI Platform Pipelines 集群可能需要几分钟时间才能删除完成。

  4. 请按照以下说明在现有 GKE 集群上重新安装 Kubeflow Pipelines。

    1. 在 AI Platform Pipelines 工具栏中,点击新建实例。 Kubeflow Pipelines 将在 Google Cloud Marketplace 中打开。

    2. 点击配置。系统随即会打开一个表单,供您配置 Kubeflow Pipelines部署。

    3. 集群下拉列表中,选择先前在其中部署 Kubeflow Pipelines 实例的集群。

    4. 选择您先前部署 Kubeflow Pipelines 实例的命名空间

    5. 应用实例名称框中,输入您之前的 Kubeflow Pipelines 实例使用的应用实例名称。

    6. 点击部署。此步骤可能需要几分钟时间。

    7. 要访问流水线信息中心,请在 Cloud Console 中打开 AI Platform Pipelines。

      转到 AI Platform Pipelines

      然后,如需查看您的 AI Platform Pipelines 实例,请点击打开流水线信息中心

后续步骤