반응형
Notice
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 소프트웨어
- 2
- 보안
- 데이터구조
- 머신러닝
- 컴퓨터과학
- 사이버보안
- 빅데이터
- 프로그래밍
- 네트워크
- 소프트웨어공학
- 프로그래밍언어
- I'm Sorry
- 딥러닝
- 알고리즘
- 자바스크립트
- 컴퓨터공학
- 파이썬
- 코딩
- 데이터과학
- 버전관리
- 웹개발
- 자료구조
- 데이터베이스
- 인공지능
- 네트워크보안
- Yes
- 클라우드컴퓨팅
- 데이터분석
- 컴퓨터비전
Archives
- Today
- Total
스택큐힙리스트
Kubernetes가 이미지를 다시 가져오도록 강제하는 방법은 무엇인가요? 본문
반응형
저는 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
를 사용하고, 요청 시 수동으로 더 최신 버전을 가져오려는 경우. 현재 다음을 수행 할 수 있습니다:
imagePullPolicy
을IfNotPresent
또는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