본문 바로가기

쿠버네티스

이미지가 없다고 에러가 뜨는 이유 (이미지 풀 정책)

728x90
반응형

 

어제 시도했던 start.spring.io에서 받아서 실행했던 것이 아래와 같이 되지 않더라...

 

그래서... 생각해보니 Desktop Docker를 실행하지 않아서 그런거 같아서 Desktop Docker를 실행 할 수 있었다.

 

 

 

 

 

 

- 이미지 풀 정책(Image Pull Policy)

쿠버니테스가 yaml 파일을 읽어들여 파드를 생성할 때, 이미지를 어떻게 Pull을 받아올 건지에 대한 정책. 아래 정책들에 대해 알아보자

 

1. Always (default 값인듯)

로컬에서 이미지를 가져오지 않고, 무조건 레지스트리(=Dockerhub, ECR과 같은 원격 이미지 저장소)에서 가져온다.

 

2. IfNotPresent

로컬에서 이미지를 먼저 가져온다. 만약 로컬에 이미지가 없는 경우에만 레지스트리에서 가져온다.

 

3. Never

로컬에서만 이미지를 가져온다.

 

- 매니페스트 파일에 이미지 풀 정책 설정하는 방법

spring-pod.yaml

apiVersion: v1
kind: Pod
metadata:
   name: spring-pod
spec:
   containers:
     - name: spring-container
       image: spring-server
       ports:
         - containerPort: 8080
       imagePullPolicy: Always

 

실행 제대로 되는지 확인하는 법

1)

kubectl exec -it spring-pod -- bash

들어가서

curl localhost:8080

 

하면 

 

Hello, World!root@spring-pod:/#

 

이렇게 뜬다!!!

 

2)

파드에서 나가서

exit

 

포트포워딩을 이번에는 12345로 해보자

kubectl port-forward pod/spring-pod 12345:8080

 

하고 로컬 컴퓨터에서 브라우저를 켜서 아래처럼 입력해주면

localhost:12345

 

이렇게 잘 나온다.

 

이후에 삭제를 한번 더 해준다.

 

- 삭제 

kubectl delete pod spring-pod

 

- 파드 조회

kubectl get pods

 

728x90
반응형