1. 컨테이너화 및 이미지 레지스트리 업로드
- 개발한 애플리케이션 코드를 Docker나 Podman을 사용해 컨테이너화하고 Dockerfile을 작성한다.
- 생성된 이미지를 Docker Hub, Harbor, Quay.io와 같은 container image registry에 푸시한다. 예를 들어, 'docker push myregistry.com/myapp:v1.0'
2. 쿠버네티스에 애플리케이션 배포
- Deployment를 생성해서 registry에서 이미지를 불러와 클러스터 내에 배포한다. Deployment는 애플리케이션의 replica를 관리하고, rolling update를 통해 애플리케이션을 무중단으로 업데이트 할 수 있게 한다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deployment
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myregistry.com/myapp:v1.0
ports:
- containerPort: 80
3. 서비스로 애플리케이션 노출
- Service 오브젝트를 생성해 애플리케이션을 내부 또는 외부 네트워크에 노출한다. ClusterIP, NodePort, LoadBalancer 중 선택할 수 있다.
apiVersion: v1
kind: Service
metadata:
name: myapp-service
spec:
selector:
app: myapp
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancer
4. 데이터 저장 전략