kubectl create deploy order --image=jinyoung/monolith-order:v202105042
kubectl get all
kubectl get po

kubectl describe po <Pod명>
kubectl logs -f <Pod명>
kubectl exec -it <Pod명> -- /bin/sh
ls # -> app.jar 등 확인 가능
ps # -> java 실행 확인 (PID 1)

kubectl set image deploy order monolith-order=jinyoung/monolith-order:v20210504
v202105042 → 올바른 v20210504로 교체watch kubectl get pod
kubectl delete pod -l app=order
ReplicaSet이 자동으로 새 Pod를 생성함
kubectl expose deploy order --type=LoadBalancer --port=8080
kubectl get service -w

curl http://<EXTERNAL-IP>:8080/orders
또는 브라우저에서 접속: http://<EXTERNAL-IP>:8080/orders

kubectl expose deploy order --type=LoadBalancer --port=8080
# Error from server (AlreadyExists): services "order" already exists
kubectl delete svc order
kubectl expose deploy order --type=LoadBalancer --port=8080
kubectl port-forward deploy/order 8080:8080
curl localhost:8080
kubectl rollout undo deploy order
kubectl get deploy -o wide

kubectl scale deploy order --replicas=3
kubectl get pods


💡 Deployment와 ReplicaSet, Pod 관계
- Deployment는 선언형 방식으로 애플리케이션의 원하는 상태를 정의
- 변경이 발생하면 새로운 ReplicaSet이 생성
- 이전 ReplicaSet은 자동으로 scale down
- Pod는 ReplicaSet에 의해 관리
- Deployment → ReplicaSet → Pod 구조를 형성
- 롤백, 롤링 업데이트, 버전 관리 등 가능
Lab/order.yaml 파일 생성apiVersion: apps/v1
kind: Deployment
metadata:
name: order-by-yaml
labels:
app: order
spec:
replicas: 2
selector:
matchLabels:
app: order
template:
metadata:
labels:
app: order
spec:
containers:
- name: order
image: jinyoung/monolith-order:v20210504
ports:
- containerPort: 8080
kubectl apply -f order.yaml
kubectl get all
