Hyun's Wonderwall

[GDSC Ewha 5th] 7주차 과제 - Service & Deployment, K8S Update method 본문

Study/Java, Spring

[GDSC Ewha 5th] 7주차 과제 - Service & Deployment, K8S Update method

Hyun_! 2024. 2. 29. 23:52

쿠버네티스의 객체(object) - Pod, Service, Deployment

Pod(파드) : 상호 의존성이 높은 컨테이너의 집합

Service : Pod를 위한 영구적인 엔드포인트. 내부/외부 IP 제공 가능. ClusterIP, NodePort, LoadBalancer, ExternalName 제공

Pod를 관리하는 간편한 방법: 배포의 필요성

‘kind: Pod’로 생성한 파드는 하나만 생성된다. 여러 개 생성하고 싶으면 name을 다르게 한 여러 파일을 생성해야 한다. 그러나 다른 내용은 같고 name만 다른 파드의 yaml 파일을 여러 개 관리하기는 어 려울 뿐만 아니라, Pod는 영구적인 것이 아니라 가끔 죽기도 한다는 문제가 있다. 이때마다 새롭게 Pod를 생성하기는 번거로우므로, 자동으로 파드를 관리해주는 방 법인 배포(deployment)를 사용하려고 한다.

 

쿠버네티스 객체들의 2가지 요소: 스펙(spec)상태(status)

- spec : 원하는 상태, status : 현재 상태

- 명령형(Imperative) 접근법, 선언형(Declarative) 접근법

배포(Deployment)

실행 중인 포드의 개수가 사용자가 명시한 포드 개수와 동일하게 만드는 선언적 방식.

replicaset을 사용하여 pod의 시작 및 중지를 관리함. 어떤 이유로든 포드가 중지되면 재시작을 담당하여 처리.

 

배포를 어떻게 유지보수할까? 쿠버네티스 업데이트.

배포 업데이트 방식

1. 순차적(Rolling) 업데이트

2. 카나리아 업데이트

3. 블루/그린 업데이트