시나브로

[패캠][실전 DevOps 환경의 Kubernetes 완벽 마스터] - 4-1. 컨테이너 빌드 및 배포 본문

Cloud/Kubernetes

[패캠][실전 DevOps 환경의 Kubernetes 완벽 마스터] - 4-1. 컨테이너 빌드 및 배포

sa1347 2026. 10. 4. 00:49

1. 컨테이너 빌드

 

컨테이너 Registry 계정 가입

docker regisitry에 계정 등록

docker login

이외에 여러 번 실패

 

로그인 성공

 

 

k8s-worker1

컨테이너 빌드하기 - Petclinic

sudo apt update

Java OpenJDK 버전 17 설치
sudo apt install openjdk-17-jdk -y
java --version

.

.

.

어마어마한 양의 패키지들이 설치됨

더보기

설치 완료

 

버전 확인

 

Petclinic 패키지 컴파일

git clone https://github.com/spring-projects/spring-petclinic.git
cd spring-petclinic

 

 

package - 프로젝트를 컴파일 -> 빌드하여 target/ 디렉토리에 binary jar 파일이 생성됨
./mvnw package

.

.

많은 리포지토리들이 다운로드 되고,

maven이 보이고, eclipse가 보이고, apache와 mongodb와 prometheus, springframework 등등...

 

Snapshot 파일 - Build 과정 확인

빌드 완료

 

ls target/*.jar

 

 

Dockerfile 작성

FROM openjdk:17.0.1-jdk-slim
VOLUME /tmp
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

 

 

Maven 빌드 및 Docker 이미지 빌드

docker build -t petclinic .

 

에러1

openjdk:17-jdk-slim 찾을수없음

 

 

에러2

링크로 해야되나싶어 넣었는데 유효하지 않은 포맷이라고 했다

 

 

에러3

openjdk/17.0.1-jdk-slim

사용자/이미지 X

저장소 주소:버전

 

도커 petclinic 이미지 빌드 완료

 

도커 이미지 확인

docker images

 

 

Docker 이미지저장

만들어둔 PetClinic 컨테이너를 레지스트리에 푸시하기
쿠버네티스 클러스터에서 사용할 수 있도록 Docker 이미지를 Docker Hub 또는 다른 컨테이너 레지스트리에 푸시하기
sudo docker tag petclinic sa1347/petclinic
sudo docker push sa1347/petclinic

 

에러

push 실패해서 왜 안되나 했더니 권한이 없었음

로그인을 master node에만 하고 worker node에 해야됨

 

로그인 성공

Push 성공

 

 

Registry에서 확인

 

 

이미지 삭제

docker rmi petclinic
docker rmi sa1347/petclinic

 

 

2. 컨테이너 배포

Kubernetes에 배포할 yaml 파일 작성

이제 Kubernetes 클러스터에서 petclinic 애플리케이션을 배포하기

 

Master노드에서 petclinic.yaml 파일 생성

sudo vi petclinic.yaml

 

 

서비스 배포 및 Test

kubectl apply -f petclinic.yaml
get pod, deploy, svc
describe pod petclinic-649789xxxxx-xxxxxx
kubectl logs -f petclinic-649789xxxxx-xxxxxx

Node: k8s-worker2/10.0.2.12

worker2 노드에서 실행 중인것을 확인

 

 

 

웹 브라우저에서 확인

http://10.0.2.12:3xxxx

worker2 노드에서 확인되나,

전체 노드 확인가능

10.0.2.10 - k8s-master

 

 

10.0.2.11 - k8s-worker1