AI Platform Pipelines クラスタのアップグレード

AI Platform Pipelines を使用すると、Google Kubernetes EngineTensorFlow Extended を使用して Kubeflow Pipelines を設定する手間が省けます。AI Platform Pipelines クラスタをアップグレードするには、既存の AI Platform Pipelines クラスタを削除し、その後、同じストレージ設定を使用して再インストールする必要があります。このガイドでは、次の内容を説明します。

  • クラスタで使用しているストレージ方式を決定する方法。
  • クラスタをアップグレードするために必要な情報を収集する方法。
  • AI Platform Pipelines クラスタを新しいリリースの Kubeflow Pipelines にアップグレードする手順。

クラスタのアップグレードの準備

AI Platform Pipelines クラスタをアップグレードするプロセスは、クラスタがパイプライン アーティファクトとメタデータを保存するために使用する方法により異なります。AI Platform Pipelines クラスタがパイプラインのアーティファクトとメタデータを保存する場所は、次の手順で確認します。

  1. Google Cloud コンソールで AI Platform Pipelines を開きます。

    AI Platform Pipelines に移動

  2. AI Platform Pipelines クラスタの行で、[名前]、[クラスタ]、[ゾーン]、[名前空間] の各列の値をメモします。この情報は、以降の手順で使用します。

  3. Cloud Shell セッションを開きます。

    Cloud Shell を開く

    Cloud Shell は、Google Cloud コンソールの下部にあるフレームに表示されます。

  4. 次のコマンドを実行して、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 がインストールされている名前空間。
  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 は 2 つの MySQL データベースに依存します。Cloud Shell で次のコマンドを実行して、クラスタのデータベースのデータベース プレフィックスを取得します。

      kubectl get configmap metadata-mysql-configmap -o json | \
      jq -r '.data.MYSQL_DATABASE | capture("(?<prefix>.*?)_metadata").prefix'
      
    4. また、Kubeflow Pipelines が Cloud SQL インスタンスとの接続に使用でき、ALL 権限を持つ MySQL アカウントのユーザー名とパスワードを指定する必要があります。クラスタで使用している MySQL ユーザー アカウントが不明な場合は、Cloud SQL を使用して MySQL ユーザーを作成します。

      MySQL ユーザーの詳細についてはこちらをご覧ください

  2. Cloud SQL を使用して AI Platform Pipelines クラスタの MySQL データベースのバックアップを作成します

  3. Google Cloud コンソールで 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 クラスタである必要はありません。

      GKE クラスタが AI Platform Pipelines 用に正しく構成されていることを確認する方法についてはこちらをご覧ください

    4. [アプリ インスタンス名] ボックスに、Kubeflow Pipelines インスタンスで以前に使用したアプリケーション インスタンス名を入力します。

    5. 名前空間は、大規模な GKE クラスタのリソースの管理に使用されます。クラスタで名前空間を使用する予定がない場合は、[名前空間] プルダウン リストで [デフォルト] を選択します。

      GKE クラスタで名前空間を使用する場合は、[名前空間] プルダウン リストを使用して名前空間を作成します。名前空間を作成するには:

      1. [名前空間] プルダウン リストで [名前空間の作成] を選択します。[新しい名前空間名] ボックスが表示されます。

      2. [新しい名前空間名] に名前空間名を入力します。

      名前空間の詳細については、Kubernetes と名前空間の編成に関するブログ記事をご覧ください。

    6. マネージド ストレージを使用すると、Cloud SQL と Cloud Storage を使用して ML パイプラインのメタデータとアーティファクトを保存できます。[Use managed storage] を選択し、次の情報を入力します。

      • Artifact ストレージの Cloud Storage バケット: 前の手順で確認したバケット名を指定します。

      • Cloud SQL インスタンス接続名: 前の手順で確認したインスタンス接続名を指定します。

      • データベースのユーザー名: MySQL インスタンスへの接続時に使用する Kubeflow Pipelines のデータベースのユーザー名を指定します。現在、マネージド ストレージを使用する Kubeflow Pipelines をデプロイするには、データベース ユーザーに ALL MySQL 権限が必要です。このフィールドを空のままにすると、この値はデフォルトで root になります。

        MySQL ユーザーの詳細についてはこちらをご覧ください

      • データベース パスワード: MySQL インスタンスへの接続時に使用する Kubeflow Pipelines のデータベース パスワードを指定します。このフィールドを空白のままにすると、Kubeflow Pipelines はパスワードを指定せずにデータベースに接続します。指定したユーザー名にパスワードが必要な場合は失敗します。

      • データベース名の接頭辞: 前の手順で確認したデータベース名の接頭辞を指定します。

    7. [デプロイ] をクリックします。この手順には数分かかることがあります。

    8. パイプライン ダッシュボードにアクセスするには、Google 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 コンソールで AI Platform Pipelines を開きます。

    AI Platform Pipelines に移動

  3. 次の手順で、GKE クラスタを削除せずに AI Platform Pipelines クラスタを削除します。AI Platform Pipelines クラスタをアップグレードするには、同じ GKE クラスタに Kubeflow Pipelines を再インストールする必要があります。

    1. AI Platform Pipelines クラスタのチェックボックスをオンにします。

    2. AI Platform Pipelines ツールバーの [削除] をクリックします。[クラスタから Kubeflow Pipelines を削除] ダイアログが表示されます。

    3. [削除] をクリックします。AI Platform Pipelines クラスタの削除には数分を要する場合があります。

  4. 以下の手順で Kubeflow Pipelines を既存の GKE クラスタに再インストールします。

    1. AI Platform Pipelines ツールバーで、[新しいインスタンス] をクリックします。Kubeflow Pipelines が Google Cloud Marketplace で開きます。

    2. [構成] をクリックします。Kubeflow Pipelines のデプロイを構成するためのフォームが開きます。

    3. [クラスタ] プルダウン リストで、以前の Kubeflow Pipelines のインスタンスがデプロイされていたクラスタを選択します。

    4. 以前の Kubeflow Pipelines のインスタンスがデプロイされている名前空間を選択します。

    5. [アプリ インスタンス名] ボックスに、Kubeflow Pipelines インスタンスで以前に使用したアプリケーション インスタンス名を入力します。

    6. [デプロイ] をクリックします。この手順には数分かかることがあります。

    7. パイプライン ダッシュボードにアクセスするには、Google Cloud Console で AI Platform Pipelines を開きます。

      AI Platform Pipelines に移動

      AI Platform Pipelines インスタンスの [パイプライン ダッシュボードを開く] をクリックします。

次のステップ