[Kubernetes] 쿠버네티스에 Replica Set 적용 / 크래시 후 안정적인 운용에 대해

2023. 6. 27. 14:37기술 창고/Kubernetes

728x90
SMALL

Replica Set 작성이 완료되었으면 적용시켜야겠죠?

적용시켜보는 과정을 알아보겠습니다.

 

 

 

 

우선 kubectl delete pod --all 명령어를 사용하여 기존에 생성해서 실행중이던 pod들을 종료시켜줍니다.

 

 

kubectl apply -f {yml 파일명} 명령어를 사용하여 작성했던 Replica Set 을 생성하고 적용시켜줍니다.

현재 Pod yml 에는 Replica Set 으로 변경하여 구성되어있습니다.

 

 

kubectl get all 명령어를 입력했을 때 추가적으로 ReplicaSet 시스템이 실행중인 것을 확인할 수 있습니다.
current 부분에 현재 실행중인 Replicas 의 수, 즉, 컨테이너 수를 알 수 있습니다.
ready 부분은 요청에 응답하는 컨테이너의 수입니다.

 

 

이제 minikube 에 노출된 포트번호와 ip주소를 가지고 요청을 보내게 되면 정상적으로 적용이 되어 페이지가 연결되는 것을 확인할 수 있습니다.

 

이렇듯, 적용은 기존 pod 나 service들로 운영했을 때랑 거의 비슷합니다.
이제 Pod 크래시가 발생되었을때 Replica Set 을 사용하면 어떻게 보완되는지 보겠습니다.

 

 

예를 들어, 현재 실행 중인 노드가 크래시되거나 Pod가 크래시 되었을때 시스템의 다른 노드가 여전히 실행 중인 상태를 가정해보겠습니다.
크래시된 상황을 delete 명령어를 사용하여 임의로 Replica Set을 종료시켰습니다.
그 후 kubectl get all 명령어를 입력하고 확인해보면 종료되었어야 할 Replica Set 이 다시 새로 시작되고 있는 것을 확인할 수 있습니다.
이것은 Replica Set 의 replicas를 1로 설정해놓았기 때문에 pod 가 종료되어도 그 1개의 Pod가 다시 새로 시작되게 되는 것입니다.

 

 

이번에는 replicas를 2로 설정하고 적용해보겠습니다.

 

 

kubectl get all 명령어를 입력하여 내역을 확인하면 pod 가 두 개 생성 된것을 확인할 수 있습니다.

replicas를 2로 설정했기 때문입니다.

 

 

다시 Replica Set 을 하나 종료시키고  kubectl get all 명령어를 입력했을 때 다시 새로운 Replica Set Pod 가 생성된 것을 확인할 수 있습니다.
또한 브라우저에서 새로고침을 해도 정상적으로 페이지가 호출이됩니다.

 

 

이처럼 Pod 만으로 운영하게 되었을 때 크래시되면 시스템 전체에 영향이 갈 수 있는 문제점을 ReplicaSet은 Replicas 라는 특징을 활용해 보완해줄 수 있는 것입니다.

운영 중인 한 노드, Pod 에 이상이 발생되면 다른 Pod로 이어서 계속해서 운영할 수 있게 되는 것이죠.

728x90
반응형
LIST