쿠버네티스 자가 치유
쿠버네티스는 워크로드의 상태와 가용성을 유지할 수 있도록 자가 치유 기능을 제공한다. 실패한 컨테이너를 자동으로 교체하고, 노드가 사용할 수 없게 되면 워크로드를 다시 스케줄하며, 원하는 시스템 상태를 유지하도록 보장한다.
자가 치유 기능
컨테이너 단위 재시작: 파드 내부의 컨테이너가 실패하면, 쿠버네티스는
재시작 정책
에 따라 재시작한다.레플리카 교체: 디플로이먼트(Deployment) 또는 스테이트풀셋(StatefulSet)의 파드가 실패하면, 쿠버네티스는 지정된 레플리카 수를 유지하기 위해 대체 파드를 생성한다. 데몬셋(DaemonSet)의 일부인 파드가 실패한다면, 컨트롤 플레인이 대체 파드를 생성하여 동일한 노드에서 실행되도록 한다.
영구 스토리지 복구: 퍼시스턴트볼륨(PersistentVolume)이 연결된 파드를 실행 중일 떄 노드에 장애가 발생하면, 쿠버네티스는 다른 노드에 있는 새로운 파드에 다시 연결할 수 있다.
서비스 로드 밸런싱: 서비스 뒤에 있는 파드에 장애가 발생하면, 쿠버네티스는 자동으로 서비스의 엔드포인트에서 해당 파드를 제거하여 정상 파드로만 트래픽을 라우팅한다.
쿠버네티스가 자가 치유를 제공하는 주요 컴포넌트는 다음과 같다.
kubelet: 컨테이너가 실행 중인지 확인하고, 실패한 컨테이너를 재시작한다.
레플리카셋(ReplicaSet), 스테이트풀셋, 데몬셋 컨트롤러: 파드 레플리카를 원하는 수로 유지한다.
퍼시스턴트볼륨 컨트롤러: 상태 저장 워크로드의 볼륨 연결 및 연결 해제를 관리한다.
고려 사항
스토리지 장애: 퍼시스턴트볼륨을 사용할 수 없게 되면, 복구 절차가 필요할 수 있다.
애플리케이션 오류: 쿠버네티스는 컨테이너를 재시작할 수 있지만, 근본적인 애플리케이션 문제는 별도로 해결해야 한다.
다음 내용
- 파드 더 읽어보기
- 쿠버네티스 컨트롤러 학습하기
- 퍼시스턴트볼륨 살펴보기
- 노드 오토스케일링 읽어보기. 노드 오토스케일링은 클러스터의 노드가 실패할 경우 자동 치유 기능도 제공한다.