✅エラー内容
ローカル環境でSpringサーバーをビルドしてAWS ECRに保存した。
当該イメージを使用してSpringサーバーをデプロイ中にエラーが発生したため、ログを確認したところ、以下の内容が確認された。


✅原因調査
自身のPCスペック
- MacBook Pro
- Intelチップ
EC2インスタンス
- t4g.small
- Intelチップ搭載のPCでは、デフォルトでDockerイメージが AMD64 (x86_64) 用としてビルドされる。
- t4g.smallのようにインスタンスタイプの名前に「g」が含まれるモデルは、ARMベース(Graviton)である。
- そのため、ARMベースのインスタンスがAMD用としてビルドされたイメージを読み込むことができず、このエラーが発生したのである。
✅解決方法の整理
1.ローカル(Intelチップ搭載Mac)でのビルド時、EC2サーバーのチップセット(ARM)に合わせてビルドを実行する。
$ docker build --platform linux/arm64 -t kube-ecr .

2.ECRへARM用イメージを再プッシュする。


3.EC2インスタンスで再起動を試みたが、解決に至らず。

追加調査の結果
EC2インスタンスにはk3sである。k3sはDockerエンジンを使用しない。
そのため、docker image lsコマンドではイメージが照会されず、内蔵されている「containerd」という別エンジンを使用するため、sudo k3s crictl imagesというコマンドを使用する必要がある。 イメージを照会した結果、旧来の1.0バージョンのイメージが引き続き使用されていたため、エラーが解決しなかった。

この問題を解決する方法は以下の2点である。
- deployment.yamlに imagePullPolicy: Always を追加し、常にECRから最新のイメージを取得するように設定する。
- 1.0バージョンのイメージを削除した後、deployment.yamlを再作成する。
今回は2番の方法で進行し、Podが正常に動作することを確認した。


'error' 카테고리의 다른 글
| [kubernetes]ImagePullBackOffエラー (0) | 2026.03.17 |
|---|---|
| [Docker/kubernetes]Symbolic linkエラー (0) | 2026.03.16 |