-
[KinD] KinD Cluster 로 Docker Image 업로드하기 (kind load docker-image)Kubernetes 2024. 2. 3. 09:12728x90반응형
- 목차
들어가며.
이번 글에서는 KinD 로 생성된 k8s Cluster 내부로 Docker Image 를 Upload 하는 방법에 대해서 알아보도록 하겠습니다.
KinD Cluster 는 Docker Hub 나 Harbor, ECR 등의 원격 이미지 레지스트리가 아닌 로컬에서 테스트 중인 도커이미지를 취급하는 경우가 존재합니다.
이 과정에서 KinD 의 image Upload 명령어를 통해서 로컬의 도커 이미지를 KinD Cluster 내부로 업로드할 수 있습니다.
KinD Cluster 생성하기.
아래 링크는 KinD 로 k8s Cluster 를 실행시키는 방법에 대한 전반적인 설명을 다룹니다.
https://westlife0615.tistory.com/407
또한 아래 명령어를 통해서 간단히 KinD k8s Cluster 를 실행하실 수 있습니다.
kind create cluster --name test-cluster --image kindest/node:v1.24.0
위 KinD 명령어 실행 후, 아래 이미지와 같이 1개의 Node 와 여러 기본 Pod 들을 확인할 수 있습니다.
kind load docker-image.
kind 의 load 명령어를 통해서 docker-image 를 KinD k8s Cluster 내부로 로드시킬 수 있습니다.
저는 개인적으로 "spark:my-spark_3.2.3" 이라는 도커이미지가 존재해서 이 이미지를 KinD k8s Cluster 로 로드시켜보겠습니다.
--name 옵션은 이미지를 업로드할 Cluster 의 이름을 지정해주셔야 합니다.
kind load docker-image spark:my-spark_3.2.3 --name test-cluster
Image: "spark:my-spark_3.2.3" with ID "sha256:ae29c94ceb68f98046cb47eef4f4d3a8474fb67c2728cd2f16463e512ef91e3f" not yet present on node "test-cluster-control-plane", loading...
Pod 생성하기.
Docker Image 를 KinD k8s Cluster 로 로드시킨 이후에 업로드된 이미지를 기반으로 Pod 를 생성해보도록 하겠습니다.
cat <<EOF> /tmp/pod.yaml apiVersion: v1 kind: Pod metadata: name: test spec: containers: - name: test image: spark:my-spark_3.2.3 EOF kubectl apply -f /tmp/pod.yaml
생성된 Pod 는 아래와 같이 성공적으로 Image 획득합니다.
Container image "spark:my-spark_3.2.3" already present on machine
하지만 아래와 같이 존재하지 않은 이미지로 Pod 를 생성하게 된다면, 아래와 같은 Events 를 확인하실 수 있습니다.
cat <<EOF> /tmp/pod.yaml apiVersion: v1 kind: Pod metadata: name: test spec: containers: - name: test image: spark:not_exists imagePullPolicy: Never EOF kubectl apply -f /tmp/pod.yaml
Container image "spark:not_exists" is not present with pull policy of Never Error: ErrImageNeverPull
반응형'Kubernetes' 카테고리의 다른 글
[Kubernetes] HPA 알아보기 ( Horizontal Pod Autoscaler ) (0) 2024.02.16 [Kubernetes] QoS 알아보기 (Quality of Service) (0) 2024.02.04 Kubernetes Deployment 알아보기 (4) 2024.01.09 Kubernetes PersistentVolumeClaims (PVC) 알아보기 (0) 2024.01.08 [Kubernetes] PodDisruptionBudget 알아보기 (PDB) (0) 2024.01.06