설명
latest 태그나 버전을 생략한 이미지 참조는 실행할 내용을 명확히 고정하지 못합니다. latest는 유효한 태그이지만 항상 최신이거나 검증된 이미지라는 뜻은 아닙니다. 버전 태그도 변경될 수 있으므로 정확한 내용 고정에는 다이제스트가 필요합니다.
잠재적 영향
- 예고하지 않은 이미지 변경으로 애플리케이션 동작이 달라질 수 있습니다.
- 장애 시 실행한 버전을 확인하거나 같은 배포를 재현하기 어려울 수 있습니다.
해결 방법
- 유지보수되는 검증된 이미지 버전을 선택하세요. 정확한 내용을 재현해야 하면 실제 이미지의 다이제스트로 고정하세요.
- 패치와 기능 변경을 시험한 뒤 참조를 갱신하세요. 특정 버전에 고정한 상태로 보안 업데이트를 놓치지 않도록 관리하세요.
예시
기존 nginx:latest와 nginx:1.21을 비교합니다. 1.21은 과거 예시 버전이며 실제 배포의 권장 버전이 아닙니다.
변경 전
yaml
apiVersion: v1
kind: Pod
metadata:
name: private-image-test
spec:
containers:
- name: app
image: nginx:latest
imagePullPolicy: Always
latest 태그가 가리키는 내용이 바뀌면 다음 시작 때 다른 이미지를 가져올 수 있습니다.
변경 후
yaml
apiVersion: v1
kind: Pod
metadata:
name: private-image-test
spec:
containers:
- name: app
image: nginx:1.21
imagePullPolicy: Always
1.21이라는 버전을 명시하지만 태그 자체가 불변이라는 보장은 없습니다.