앞전에 apply명령을 이용해서 직접 pod를 생성 했는데요.

yaml파일을 위해 pod를 다루게 되면, 문제가 하나 있습니다.

이렇게 생성하는 pod는 일부가 다운되면, 해당 pod는 다시 살릴 수 없습니다.

예를 들어 pod를 강제로 삭제해 봅시다.

# kubectl delete <파드명>
kubectl delete pod/webapp-v-0-1

# 모든 포드 삭제
kubectl delete pod --all

service는 살아있지만, pod는 다운되었기에 애플리케이션은 실행되지 않습니다.

(쿠버네티스는 이런 포드를 자동으로 restart하지 않습니다)

👉 파드의 생명주기( life cycle)이 끝나버립니다.

그렇다면 어플리케이션에 장애가 일어났을 때 대응할 수 있도록 마이크로서비스에서 대응하는 방법은 무엇일 까요?

👉 아래처럼 파드를 여러개 만들게 됩니다.

image.png

apiVersion: v1
kind: Pod
metadata:
  name: webapp # 1
  labels:
    app: webapp 
    release: "0" # 버전명 추가
spec:
  containers: 
  - name: webapp 
    image: coding404/k8s-coding404-webapp-react:v0

---
# 동일한 녀석을 여러개....???????????? 20개 라면????
apiVersion: v1
kind: Pod
metadata:
  name: webapp1 # 2
  labels:
    app: webapp 
    release: "0"
spec:
  containers: 
  - name: webapp 
    image: coding404/k8s-coding404-webapp-react:v0
    
## 생략..........

포드를 직접 관리하는 것보다는 래플리카세트를 이용하여 관리합니다.