본문 바로가기
[GPUaaS]

[중요2] 쿠버네티스 입문·실전 !!

by METAVERSE STORY 2026. 1. 12.
반응형

 

 

 

## 생성한 yaml 파일 == 매니페스트 파일 (Manifest File)

 

## 파드의 네트워크는 로컬 컴퓨터의 네투워크와는 독립적으로 분리되어 있다.

 

1. 파드 내부로 들어가서 접근하기
kubectl exec -it nginx-pod -- bash
curl localhost:80

 

 

2. 포트 포워딩 활용하기

 

 

 

 

 

 

## 자바 빌드
./gradlew clean build

 

## Dockerfile 생성 후, 이미지 빌드
docker build -t spring-server . 

 

## spring-pod.yaml 생성

 

kubectl apply -f spring-pod.yaml
kubectl get pods

 

 

 

 

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

 

imagePullPolicy: IfNotPresent 추가

 

kubectl delete pod spring-pod
kubectl apply -f spring-pod.yaml

 

1. 파드 내부로 들어가서 접근하기
kubectl exec -it spring-pod -- bash
curl localhost:8080

 

2. 포트포워딩 활용하기

 

 

 

 

 

2.6. [예제] 백엔드(Nest.js) 서버를 파드(Pod)로 띄워보기

 

## Dockerfile 생성

 

## .dockerignore 파일 생성

 

## 이미지 빌드
docker build -t nest-server .
docker image ls

 

 

## nest-pod.yaml 생성

 

 

 

 

 

 

 

 

 

 

2.7. [예제] 프론트엔드(HTML, CSS, Nginx) 서버를 파드(Pod)로 띄워보기

 

## Dockerfile 생성 및 이미지 빌드
docker build -t my-web-server .

 

## web-server-pod.yaml 파일 생성

 

 

 

 

 

2.8. [예제] 프론트엔드(Next.js) 서버를 파드(Pod)로 띄워보기

 

 

## Dockerfile 생성

 

## .dockerignore 생성

 

 

 

 

 

 

 

 

 

 

2.9. [예제] 백엔드(Spring Boot) 서버 3개 띄워보기

 

## Pod 의 metadata 이름을 다르게 하여 3개 생성

 

 

 

 

 

 

2.10. [보충 강의] 파드(Pod) 디버깅 하는 방법

 

## 이미지 없는 태그명 지정
- ErrImagePull 발생

 

1. 이미지 점검
## kubectl describe pods nginx-pod

 

2. Pod 로그 점검
## Nginx 구동 로그 확인 방법

kubectl logs nginx-pod

 

3. Pod 내부 점검
kubectl exec -it nginx-pod -- bash

 

 

 

 

 

 

 

3.1. 디플로이먼트(Deployment)란?
- 파드를 묶음으로 쉽게 관리할 수 있는 기능

 

 

 

 

 

 

3.2. [예제] 디플로이먼트를 활용해 백엔드(Spring Boot) 서버 3개 띄워보기

 

 

## Deployment 세부정보

## 배포할 Pod 정의

 

kubectl apply -f spring-deployment.yaml
kubectl get deployment

 

kubectl get replicaset

 

kubectl get pods

 

 

 

 

 

 

 

 

3.3. 서비스(Service)란?
- 외부로부터 들어오는 트래픽을 받아, 파드에 균등하게 분배해주는 로드밸러서 역할을 하는 기능

 

 

 

 

 

 

 

 

3.4. [예제] 서비스(Service)를 활용해 백엔드(Spring Boot) 서버와 통신해보기

 

 

 

## spring-service.yaml 생성

 

 

kubectl apply -f spring-service.yaml
kubectl get service

 

 

 

 

 

3.5. 디플로이먼트를 활용한 서버 개수 조절 방법

 

 

 

 

 

 

 

3.6. 서버가 죽었을 때 자동으로 복구하는 기능 (Self-Healing)

 

 

## docker ps  조회 가능

 

 

 

 

 

 

 

 

3.7. 새로운 버전의 서버로 업데이트 시키기

 

## 소스코드 수정 후, 재빌드, 이미지 재생성 (태그 등록)

 

## spring-deployment.yaml 파일 수정
image: spring-server:1.0

 

 

 

 

 

 

 

 

 

3.8. [예제] 디플로이먼트, 서비스를 활용해 백엔드(Nest.js) 서버 띄워보기

 

## kubectl delete all --all

 

 

 

 

 

## Dockerfile 생성

 

## .dockerignore 생성

 

 

 

## nest-deployment.yaml 생성

 

- container ==> containers 로 변경 할것

 

 

## nest-service.yaml 생성

 

 

kubectl apply -f nest-deployment.yaml
kubectl get deployment

 

kubectl apply -f nest-service.yaml
kubectl get service

 

 

 

 

 

 

 

 

 

 

 

3.9. [요약] 지금까지 나온 명령어 정리

 

 

 

 

 

 

3.10. [요약] 파드(Pod), 디플로이먼트(Deployment), 서비스(Service) 개념 정리

 

 

 

 

 

 

 

 

 

4.1. k3s란?

 

 

 

 

 

 

 

4.2. EC2에서 도커 쿠버네티스 설치하기(k3s)

 

 

 

 

 

 

 

 

 

4.3. [예제] 디플로이먼트, 서비스를 활용해 웹 서버(Nginx) 띄워보기

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글