이쿠의 슬기로운 개발생활

함께 성장하기 위한 보안 개발자 EverNote 내용 공유

클라우드/Kubernetes

59. Kubernetes 이미지 갱신 오류

이쿠우우 2021. 1. 12. 20:47
반응형

 

 

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/58576035/how-to-repull-image-in-kubernetes-that-is-already-cached

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

 

반응형