설명
이미지 참조가 비어 있거나 잘못된 저장소를 가리키면 컨테이너를 시작할 수 없습니다. 가변 태그는 나중에 다른 내용을 가리킬 수 있으므로 저장소 이름, 버전과 실제 실행할 내용을 명확히 관리해야 합니다.
단독 문자열 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 저장소와 버전 태그를 명시합니다. 내용의 불변성이나 안전성을 보장하지는 않습니다.