コンテナ イメージに関する問題のトラブルシューティング

Artifact Registry でコンテナ イメージを管理する際に問題が発生した場合に役立つトラブルシューティング手順について説明します。

イメージの pull や Trusted Cloud by S3NS ランタイム環境へのデプロイができない

以下をご確認ください。

  1. push するイメージのフルパスが正しいことを確認します。パスには、レジストリのホスト名、 Trusted Cloud by S3NS、プロジェクト ID、リポジトリ、イメージを含める必要があります。次に例を示します。
    u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/my-image:v1
    詳細については、リポジトリとイメージの名前をご覧ください。
  2. イメージを pull するアカウントに、リポジトリから読み取る適切な権限があることを確認します。サービス アカウントへのロールの自動付与を無効にしている場合は、ランタイム サービス アカウントに Artifact Registry ロールを付与する必要があります。
    • Compute Engine サービス アカウントと Google Kubernetes Engine サービス アカウントの場合は、ランタイム サービス アカウントに Artifact Registry 読み取りロール(roles/artifactregistry.reader)を付与する必要があります。
    • Docker や他のサードパーティ製ツールを使用している場合は、次の操作を行う必要があります。

Artifact Registry にイメージを push できない

次のようにしてください。

  1. push するイメージのフルパスが正しいことを確認します。パスには、レジストリのホスト名、 Trusted Cloud by S3NS プロジェクト ID、リポジトリ、イメージを含める必要があります。次に例を示します。
    u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/my-image:v1
      

    各 Artifact Registry リポジトリは個別のリソースであるため、リポジトリのないパスにイメージを push することはできません。たとえば、u-france-east1-docker.s3nsregistry.fr/my-project/my-image:v1 は無効な画像パスです。

    詳細については、リポジトリとイメージ名をご覧ください。

  2. イメージを push するアカウントに、リポジトリへの書き込み権限があることを確認します。サービス アカウントへのロールの自動付与を無効にしている場合は、ランタイム サービス アカウントに Artifact Registry ロールを付与する必要があります。
    • Compute Engine サービス アカウントと Google Kubernetes Engine サービス アカウントの場合は、Artifact Registry 書き込みロール(roles/artifactregistry.writer)をランタイム サービス アカウントに付与する必要があります。
  3. Artifact Registry から「The repository has enabled tag immutability」というメッセージが返された場合は、リポジトリにタグの不変性が構成されています。リポジトリ内の同じイメージの別のバージョンですでに使用されているタグを使用してイメージを push することはできません。保存されている他のバージョンのイメージで使用されていないタグを使用して、イメージを再度 push してみてください。

    リポジトリが不変のイメージタグ用に構成されていることを確認するには、Google Cloud コンソールのリポジトリのリストにある [不変のイメージタグ] 列を確認するか、次のコマンドを実行します。

    gcloud artifacts repositories describe REPOSITORY \
          --project=PROJECT-ID \
          --location=LOCATION
      

ImagePullBackOff メッセージと ErrImagePull メッセージ

ImagePullBackOffErrImagePull を含むメッセージは、GKE によってレジストリからイメージを pull できないことを示しています。