상태가 없는 애플리케이션은 클러스터의 다른 노드에서 간단히 재시작할 수 있지만,,
상태가 있어야 하는 쿠버네티스 애플리케이션은 어떻게 구축할까?
쿠버네티스는 상태를 갖는 애플리케이션을 처리할 수 있다. 이를 통해 장애 안정성 및 로드 밸런싱을 용이해진다.
애플리케이션이 상태를 갖는다면 즉, 도커 볼륨에 특정 데이터를 저장해야 한다면,
애플리케이션이 실행되는 각 노드에서 필요한 도커 볼륨을 사용할 수 있어야 한다.
따라서 상태를 갖는 애플리케이션의 처리가 더욱 복잡해진다.
그래서 쿠버네티스는 영구 볼륨(persistent volumes)(https://kubernetes.io/docs/concepts/storage/persistent-volumes/)과
상태 저장 셋(stateful sets)(https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-storage)을 제공한다.
또 다른 방법은 operators(https://coreos.com/operators)을 사용하는 것이다.
operators을 사용하면 상태를 갖는 애플리케이션을 자동으로 설치할 수 있다.
예를 들어 프로메테우스(Prometheus) operator(https://github.com/coreos/prometheus-operator)가 있다.
프로메테우스 operator는 쿠버네티스 클러스터에 모니터링 시스템인 프로메테우스를 설치할 수 있다.
또한 Prometheus, ServiceMonitor, Altermanager와 같은 프로메테우스 컴포넌트에 대한 쿠버네티스 자원을 소개하며 프로메테우스 컴포넌트를 포드, 서비스, 배포 대신 쿠버네티스 설정으로 사용할 수 있다.
프로메테우스 operator는 프로메테우스가 모니터링 데이터를 저장하는 방법을 결정해 핵심 과제를 해결한다.
'Cloud' 카테고리의 다른 글
zipkin 과 spring cloud sleuth 소개 (0) | 2018.08.22 |
---|---|
[open stack] anti-affinity 인스턴스 생성하기 (0) | 2018.08.22 |
[kebernetes] 쿠버네티스 서비스 health (0) | 2018.08.10 |
[opentsdb] net.opentsdb.tsd.ConnectionManager$ConnectionRefusedException: Channel size exceeds total (0) | 2018.07.08 |
[grafana] auto interval downsampling (0) | 2018.07.06 |