스택큐힙리스트

Kubernetes가 이미지를 다시 가져오도록 강제하는 방법은 무엇인가요? 본문

카테고리 없음

Kubernetes가 이미지를 다시 가져오도록 강제하는 방법은 무엇인가요?

스택큐힙리스트 2023. 10. 30. 22:55
반응형

저는 GKE에서 Kubernetes의 다음 복제 컨트롤러를 가지고 있습니다:


apiVersion: v1
kind: ReplicationController
metadata:
name: myapp
labels:
app: myapp
spec:
replicas: 2
selector:
app: myapp
deployment: initial
template:
metadata:
labels:
app: myapp
deployment: initial
spec:
containers:
- name: myapp
image: myregistry.com/myapp:5c3dda6b
ports:
- containerPort: 80
imagePullPolicy: Always
imagePullSecrets:
- name: myregistry.com-registry-key

이제, 만약 다음을 실행하면


kubectl rolling-update myapp --image=us.gcr.io/project-107012/myapp:5c3dda6b

롤링 업데이트는 수행되지만, 재풀이(pull)는 발생하지 않습니다. 왜 그럴까요?

답변 1

쿠버네티스는 생성된 Pod에 대해 이미지를 가져올 것입니다. 가져오는 경우는 다음 중 하나일 때입니다(자세한 내용은 updating-images doc을 참조하세요):



  • :latest로 태그가 달린 이미지를 사용하는 경우

  • imagePullPolicy: Always가 명시된 경우


이렇게하면 항상 가져올 수 있습니다. 그러나 필요할 때만 수행하려면 어떻게해야합니까? 예를 들어, some-public-image:latest를 사용하고, 요청 시 수동으로 더 최신 버전을 가져오려는 경우. 현재 다음을 수행 할 수 있습니다:


  • imagePullPolicyIfNotPresent 또는 Never로 설정하고 각 클러스터 노드에서 이미지를 수동으로 끌어와 최신 이미지를 캐시한 다음 kubectl rolling-update 또는 유사한 작업을 수행하여 Pod를 재시작합니다 (추상적이고 쉽게 망가지는 해킹!)

  • 임시로 imagePullPolicy를 변경하고 kubectl apply를 수행하여 팟을 재시작합니다(예: kubectl rolling-update), 그런 다음 imagePullPolicy를 복원하고 kubectl apply를 다시 수행합니다 (추상적이고 쉽게 망가지는 해킹!)

  • 공개 이미지: 최신 버전(latest)를 개인 저장소에 끌어와서 kubectl rolling-update를 수행합니다(무거움!)


요구에 따른 pull에 대한 좋은 해결책은 없습니다. 변경 사항이 있으면 댓글로 알려주세요. 이 답변을 업데이트하겠습니다.

답변 2

Title: 쿠버네티스에서 이미지 강제 재다운로드 방법
Introduction:
쿠버네티스(Kubernetes)는 컨테이너 오케스트레이션 플랫폼으로, 애플리케이션 배포 및 관리를 간편하게 수행할 수 있게 도와줍니다. 쿠버네티스는 컨테이너 이미지를 사용하여 애플리케이션을 실행하는데, 때로는 이미지를 강제로 재다운로드해야할 필요가 있을 수 있습니다. 이 글에서는 쿠버네티스에서 이미지를 강제로 다시 다운로드하는 방법에 대해 알아보겠습니다.
본문:
1. 템플릿 수정:
먼저, 쿠버네티스 오브젝트의 템플릿을 수정하는 방법이 있습니다. 이를 통해 이미지의 태그를 변경하여 강제로 이미지를 재다운로드할 수 있습니다. 예를 들어, Deployment, StatefulSet, DaemonSet 등의 오브젝트의 템플릿을 수정합니다.
2. 롤링 업데이트:
또 다른 방법으로는 롤링 업데이트를 통해 이미지를 강제로 재다운로드하는 것입니다. 롤링 업데이트는 새로운 이미지로 스케일 아웃 및 스케일 인을 수행하면서 이전 이미지로 실행 중인 파드를 종료하는 방식입니다. 이를 통해 강제로 이미지를 다시 다운로드할 수 있습니다.
3. 이미지 풀 정책 설정:
이미지 풀 정책은 파드에게 이미지를 다시 끌어오도록 강제하는 방법 중 하나입니다. 이미지 풀 정책은 Deployment, StatefulSet 등과 함께 사용되며, Always로 설정하여 항상 이미지를 다시 끌어오게 할 수 있습니다.
4. 도커 이미지 캐시 삭제:
마지막으로, 새로운 이미지로 강제로 재다운로드하기 위해 도커 이미지 캐시를 삭제하는 방법도 있습니다. 이는 도커 레지스트리에 있는 새로운 이미지로부터 최신 사본을 가져올 수 있게 해줍니다.
결론:
쿠버네티스에서 이미지를 강제로 재다운로드하는 방법은 여러 가지가 있습니다. 템플릿 수정, 롤링 업데이트, 이미지 풀 정책 설정, 그리고 도커 이미지 캐시 삭제 등을 통해 이미지를 강제로 다시 가져올 수 있습니다. 애플리케이션 업데이트나 버그 수정 등 이미지의 변경이 필요한 경우, 이러한 방법들을 활용하여 최신 이미지로 쿠버네티스를 업데이트할 수 있습니다.

반응형
Comments