コンテナーのイメージ参照の確認

実際に取得できる検証済みイメージの参照を指定してください。

説明

空のイメージ参照や誤ったリポジトリを指定すると、コンテナーを起動できない場合があります。可変タグは後で別の内容を指すことがあるため、リポジトリ名、バージョン、実行する内容を明確に管理してください。

単独の latest はタグ指定ではなく、latest というイメージリポジトリ名として解釈されます。image:latest のようなタグ付き参照とは異なります。バージョンタグも不変とは限らないため、内容を固定するには検証済みダイジェストを使ってください。

想定される影響

  • イメージを取得できず、デプロイや復旧に失敗する場合があります。
  • 意図しないイメージが実行され、運用上の追跡やセキュリティ検証が難しくなる可能性があります。

対処方法

  • image に実際のレジストリとリポジトリ、検証済みタグまたはダイジェストを指定し、プラットフォームとの互換性とアクセス権限を確認してください。
  • 正確な内容の固定にはダイジェストを使い、更新は別途確認してください。タグがあるだけでイメージの安全性が保証されるわけではありません。

例

既存の例を保持した比較です。変更前の latest はリポジトリ名として解釈されます。変更後の nginx:1.7.9 は古いバージョンタグの例であり、現在のデプロイに推奨するイメージではありません。

変更前

hcl
resource "kubernetes_pod" "example" {
  metadata {
    name = "terraform-example"
  }

  spec {
    container {
      image = "latest"
      name  = "example"
    }
  }
}

変更後

hcl
resource "kubernetes_pod" "example" {
  metadata {
    name = "terraform-example"
  }

  spec {
    container {
      image = "nginx:1.7.9"
      name  = "example"
    }
  }
}

補足:

  • 変更前: latest というリポジトリを参照します。意図したイメージが存在し、取得できるか確認する必要があります。
  • 変更後: nginx リポジトリとバージョンタグを明示します。内容の不変性や安全性を保証するものではありません。

参考資料