プロダクトの保守

このページでは、Cloud Marketplace でプロダクトを公開した後のプロダクトの保守および更新についてのガイドラインを説明します。

アプリの更新を管理する

プロダクトを更新するプロセスは、初期アプリ パッケージを作成するプロセスに似ています。最初に更新用の新しいコンテナ イメージセットを生成し、次に生成されたイメージセットを Container Registry のステージング リポジトリに push します。 新しいバージョンを追加するのか既存のバージョンを更新するのかに応じて、以下の手順に従ってアプリを更新します。

新しいバージョンを追加する

Container Registry のステージング リポジトリで、アプリのイメージに新しいマイナー バージョンのタグを付けます。次に、手順に従って、Producer Portal 上でアプリを送信します。

既存のバージョンを更新する

Container Registry のステージング リポジトリで、イメージに現在のマイナー バージョンのタグを付与します。次に、以下の手順に従って、Producer Portal 上でアプリを更新します。

  1. Google Cloud コンソールで Producer Portal を開きます。

    https://console.cloud.google.com/producer-portal?project=YOUR_PUBLIC_PROJECT_ID
    

    YOUR_PUBLIC_PROJECT_ID を、Cloud Marketplace 用に作成したパブリック プロジェクトの ID(my-organization-public など)に置き換えます。

  2. プロダクトのリストで、プロダクト ID をクリックします。

  3. プロダクトの [概要] ページで [コンテナ イメージ] セクションに移動し、[編集] をクリックします。

  4. [提案されたリリース] で [編集] をクリックします。リポジトリの読み取りとタグの読み込みに数秒かかる場合があります。

  5. 更新するリリースをクリックします。

  6. [表示タグ] で、Container Registry で更新したイメージに対応するダイジェストを使用するリリースを選択します。

  7. リリースのすべての情報を更新したら、[完了] をクリックします。

  8. サポートされているリリースをプロダクトに追加したら、[保存と検証] をクリックします。

  9. [送信] をクリックして、審査のためにコンテナ イメージを送信します。

  10. すべての審査が承認されたら、プロダクトの [概要] ページを開いて [公開] をクリックすることにより、プロダクトを公開して起動できます。

初回の送信と同様に、Cloud Marketplace チームにより自動テストが実行されレビューが実施されます。

新しいバージョンが公開された後は、そのバージョンが新しい顧客にとってのデフォルトとなります。 現在のお客様には、新しいイメージは、既存のタグに push された状態で表示されます。Cloud Marketplace プロダクト ページからのデプロイは常にイメージ ダイジェストに固定され、自動的に更新されません。コマンドラインからアプリをデプロイする顧客のためにも、ダイジェストにイメージを固定することをおすすめします。

ユーザーが自分のアプリ イメージを更新できるように、更新の手順をユーザーガイドに追加することをおすすめします。

非推奨の Kubernetes API からの移行

Kubernetes API の進化に伴い、古い API は最終的に非推奨となり、削除されます。つまり、アプリに現在の GKE クラスタとの互換性がなくなる場合があります。通常、既存のオブジェクトは永続化されるため、実行中のデプロイは影響を受けません。

新しいアプリのデプロイの失敗を回避するには:

  1. GKE リリースノートで現在の GKE のバージョンを確認します。GKE リリース スケジュールで今後のバージョンを確認します。
  2. アプリ マニフェストを更新して、Regular チャンネルまたは Stable チャンネルの現在の GKE バージョンまたは今後の GKE バージョンで削除される、非推奨の Kubernetes API バージョンの依存関係を削除します。Kubernetes の非推奨 API の移行ガイドをご覧ください。
    • たとえば、ガイドに従って、batch/v1beta1 は Kubernetes バージョン 1.25 で削除されるため、batch/v1beta1 CronJob から batch/v1 の使用に更新します。
    • アプリの以前のリリースのマニフェストを更新できない場合は、リリースを削除するか、スキーマで k8sVersion クラスタ制約を設定することをおすすめします。
  3. mpdev ツールを使用して、再ビルドされたすべてのコンテナ イメージをテストします。削除しようとしている非推奨の API をサポートしていない Kubernetes バージョンを含むクラスタが理想的です。
    • たとえば、Kubernetes バージョン 1.22 のクラスタを使用して、Kubernetes バージョン 1.22 で削除された apiextensions.k8s.io/v1beta1 CustomResourceDefinition からの更新をテストします。
  4. 新しいバージョンを追加するまたは既存のバージョンを更新するの手順に沿って、ポータルに変更を送信します。

料金の変更

価格変更は、すぐには有効にならず、特定の期間の後に有効になります。詳細については、契約をご覧ください。

  1. Google Cloud コンソールで Producer Portal を開きます。

    https://console.cloud.google.com/producer-portal?project=YOUR_PUBLIC_PROJECT_ID
    

    YOUR_PUBLIC_PROJECT_ID を、Cloud Marketplace 用に作成したパブリック プロジェクトの ID(my-organization-public など)に置き換えます。

  2. プロダクトのリストで、プロダクト ID をクリックします。

  3. プロダクトの [Overview] ページで [Pricing review] に移動し、[Edit] をクリックします。

  4. 価格を変更します。

  5. [送信] をクリックして、審査のために料金を送信します。

  6. すべての審査が承認されたら、プロダクトの [概要] ページを開いて [公開] をクリックすることにより、プロダクトを公開して起動できます。

アプリのサポート終了

ソフトウェアを開発する際に、特定のリリースを Cloud Marketplace で利用できないようにすることもできます。

アプリのリリースの削除

プロダクトからリリースを削除すると、そのプロダクトの公開時にプロダクトの詳細ページから直ちに削除されます。ただし、リリースを削除しても、公開 Container Registry に公開されたイメージは削除されません。

  1. Google Cloud コンソールで Producer Portal を開きます。

    https://console.cloud.google.com/producer-portal?project=YOUR_PUBLIC_PROJECT_ID
    

    YOUR_PUBLIC_PROJECT_ID を、Cloud Marketplace 用に作成したパブリック プロジェクトの ID(my-organization-public など)に置き換えます。

  2. プロダクトのリストで、プロダクト ID をクリックします。

  3. プロダクトの [概要] ページで [コンテナ イメージ] セクションに移動し、[編集] をクリックします。

  4. [提案されたリリース] の横にある [編集] をクリックします。リポジトリの読み取りとタグの読み込みに数秒かかることがあります。

  5. 削除するリリースをハイライト表示します。

  6. [削除] をクリックしてバージョンを削除します。

  7. [完了] をクリックします。

  8. サポートされているリリースをプロダクトに追加したら、[保存と検証] をクリックします。

  9. [送信] をクリックして、審査のためにコンテナ イメージを送信します。

  10. すべての審査が承認されたら、プロダクトの [概要] ページを開いて [公開] をクリックすることにより、プロダクトを公開して起動できます。