| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 합격률15.18%
- 너무어려워...
- 청내공만기
- 결심한만큼
- 만기오긴오냐
- Provider AWS
- 청내공화이팅
- 그냥아는만큼남기기
- 해낼수있어
- IaC코드자동화
- 취업화이팅
- 존버존버
- 테라폼만세
- 청내공
- 무탈히가길
- 청년내일채움공제
- 윽짜증
- 2025년 1회차
- 화이팅
- 해내자
- 저것도꾸준히읽어야지ㅠㅠ
- 자동화구현만세
- 이놈의기사또해내야돼
- 청내공해내자
- 정신력승리
- 청내공만기오긴오냐
- 정신력승리함
- 은우쌤
- aws책은읽다말았는데
- 어렵다
- Today
- Total
시나브로
[패캠][실전 DevOps 환경의 Kubernetes 완벽 마스터] - 4-1. 컨테이너 빌드 및 배포 본문
[패캠][실전 DevOps 환경의 Kubernetes 완벽 마스터] - 4-1. 컨테이너 빌드 및 배포
sa1347 2026. 10. 4. 00:491. 컨테이너 빌드
컨테이너 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 노드에서 확인되나,
전체 노드 확인가능
























