プロダクトの保守

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