Kubernetes 이미지 갱신 오류
상황
1.
dockerhub 에 기존 이미지 peksoon/iksoon_tomcat:1.0.3 이 있었고
kubernetes 에서 해당 이미지를 계속 사용하고 있었음
2.
peksoon/iksoon_tomcat:1.0.3에 오류가 있어서
version 1.0.4로 올리기는 hub 용량 사용하는거에 민폐될까봐
peksoon/iksoon_tomcat:1.0.3를 dockerhub 에서 delete 하고
peksoon/iksoon_tomcat:1.0.3를 다시 push 하기로 함
3.
docker 에서 peksoon/iksoon_tomcat:1.0.3 를 수정해서 다시 push 함
그후 docker 에서 images pull 해서 정상 동작 확인함
4.
kubernetes 에서 peksoon/iksoon_tomcat:1.0.3 사용하는 pod를 다시 재생성함
5.
근데 예전 오류나전 1.0.3 으로만 계속 생성되고
버그 수정하여 방금 push 한 peksoon/iksoon_tomcat:1.0.3 이 생성되지 않음
images hash 값도 이전 version 과 동일한 hash 값이고
새로운 hash 값의 이미지를 사용하지 않음
원인
kubernetes image list 를 확인했어야함
기존의 동일한이름인 peksoon/iksoon_tomcat:1.0.3를 가지고있어서
kubernetes 에서는 이미 받아놓은 이미지 파일만 계속 사용했던 것.....
해결책
방법 1.
최고의 해결책은 중복되지 않은 images tag 를 사용한 images 를 사용하는것
방법 2.
imagePullPolicy : Always
동일한 태그에 이미지를 푸시하는 경우,
기존에 해당 태그로 이미지를 가져왔다면 새로운 이미지를 가져오지 못함.
이를 해결하기 위하여 선언하는 옵션으로
pod 생성 시 imagePullPolicy: Always
옵션을 사용하면 항상 새로운 image을 pull 해서 pod를 생성함.
방법 3.
Worker Node 에서 가서
docker images 명령으로 images 를 조회 한 후
해당 이미지를 직접 삭제하는 방법.
제 글을 복사할 시 출처를 명시해주세요.
글에 오타, 오류가 있다면 댓글로 알려주세요! 바로 수정하겠습니다!
참고
https://stackoverflow.com/questions/36409855/how-to-clean-up-old-unused-kubernetes-images-tags
kubernetes Garbage가비지 기능
https://da-nika.tistory.com/145
https://box0830.tistory.com/288
'Kubernetes > Kubernetes 에러 경험' 카테고리의 다른 글
Cannot enforce AppArmor: AppArmor is not enabled on the host (0) | 2021.01.12 |
---|---|
Pod 생성 시 CrashLoopBackOff 상태 (0) | 2021.01.12 |
Ingress 생성 시 오류 (0) | 2021.01.12 |
Master, Worker node NotReady 에러 (0) | 2021.01.12 |
kubernetes localhost:8008 was refused 에러 (0) | 2021.01.12 |