0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Container Registry が非推奨になったので Artifact Registry へ移行する

Posted at

はじめに

Container Registry が非推奨となり、Artifact Registry への移行が必要になりました。
移行のタイムライン、移行手順について記載します。

移行が必要

Google Cloud は、コンテナイメージの管理サービスを Container Registry から Artifact Registry へと移行することを決定しました。次のタイムラインで移行されるので、 Container Registry を使用しているプロジェクトは移行が必要です。

重要なタイムライン

  • 2024年5月15日以降: Container Registry の使用歴がないプロジェクトでは、gcr.io ドメインのイメージが Artifact Registry でホストされるようになります。
  • 2025年3月18日: Container Registry の提供が終了します。
  • 2025年4月22日以降: Container Registry からの既存イメージの読み取りができなくなります。

Artifact Registry の利点

  1. コンテナイメージとコンテナ以外のアーティファクトの両方をサポート
  2. Cloud IAM を通じたリポジトリレベルのアクセス制御
  3. リージョンリポジトリのサポートによる可用性とスピードの向上
  4. セキュリティ、スケーラビリティ、コントロールの大幅な改善

移行オプション

  1. gcr.io リポジトリ: Container Registry の gcr.io ホスト名にマッピングされたリポジトリ
  2. pkg.dev リポジトリ: Artifact Registry の全機能をサポートする独立したリポジトリ

自動移行ツールの利用

Google Cloud は自動移行ツールを提供しており、以下の利点があります:

  • ダウンタイムやサービス停止なしで移行可能
  • Artifact Registry に gcr.io リポジトリを自動作成
  • IAM ポリシーの提案と適用
  • トラフィックのリダイレクト設定
  • コンテナイメージの自動コピー

Container Registry から Artifact Registry への移行手順

Google Cloud は Container Registry の提供を終了し、Artifact Registry への移行を推奨しています。以下では、自動移行ツールを使用して、Container Registry から Artifact Registry に移行する手順をステップバイステップで解説します。


前提条件

  1. Google Cloud CLI のインストールと更新

    • 以下のコマンドで Google Cloud CLI をインストールまたは最新バージョンに更新します。
      gcloud components update
      
  2. Artifact Registry API の有効化

    • Artifact Registry API を有効にします。
      gcloud services enable artifactregistry.googleapis.com
      
  3. 必要な IAM ロールの確認

    • サービスアカウントに以下のロールが付与されていることを確認してください:
      • roles/storage.objectViewer(Container Registry のイメージ閲覧権限)
    • ユーザーには以下のロールが必要です:
      • roles/artifactregistry.containerRegistryMigrationAdmin(Artifact Registry 移行管理者)

移行手順

1. 自動移行コマンドの実行

以下のコマンドを実行して、Container Registry から Artifact Registry に移行します:

gcloud artifacts docker upgrade migrate \
    --projects=PROJECT_ID
  • PROJECT_ID は移行対象の Google Cloud プロジェクト ID を指定します。
  • 複数プロジェクトを同時に移行する場合は、カンマ区切りで複数のプロジェクト ID を指定できます。

このコマンドにより、以下の操作が自動的に実行されます:

  • 各リージョンに対応する gcr.io リポジトリを Artifact Registry に作成。
  • IAM ポリシーの提案と適用(またはスキップ)。
  • Container Registry の gcr.io エンドポイントから Artifact Registry へのトラフィックリダイレクト。
  • Container Registry に保存されているすべてのコンテナイメージを Artifact Registry にコピー。

2. 特定条件でのイメージコピー

特定条件でのみイメージをコピーしたい場合、以下のオプションを使用できます:

過去一定期間内に pull されたイメージのみコピー

gcloud artifacts docker upgrade migrate \
    --projects=PROJECT_ID \
    --recent-images=DAYS
  • DAYS は過去の日数(30~180日)を指定します。

各イメージの最新バージョンのみコピー

gcloud artifacts docker upgrade migrate \
    --projects=PROJECT_ID \
    --last-uploaded-versions=VERSIONS
  • VERSIONS はコピーする最新バージョン数を指定します。

注意: --recent-images--last-uploaded-versions は併用できません。


3. イメージのみコピー

他の移行手順をスキップし、コンテナイメージだけを Artifact Registry にコピーしたい場合は、以下のコマンドを使用します:

gcloud artifacts docker upgrade migrate \
    --projects=PROJECT_ID \
    --copy-only

移行後の確認

  1. リポジトリとイメージの確認

    • 移行後、Artifact Registry 上でリポジトリとイメージが正しく作成されているか確認します。
      gcloud artifacts repositories list
      gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME
      
  2. CI/CD パイプラインの更新

    • Container Registry を参照している設定やスクリプト(例: CI/CD パイプライン)を Artifact Registry に変更します。
  3. Docker 認証情報の更新

    • Docker クライアントで Artifact Registry を使用する場合、認証情報を設定します。
      gcloud auth configure-docker LOCATION-docker.pkg.dev
      

まとめ

Container Registry から Artifact Registry への移行は、自動移行ツールを使用することで簡単かつ安全に実施できます。期限が迫っているため、早めに対応しましょう。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?