[영상 보기] 오픈스택을 쿠버네티스 네이티브하게 운영하는 방법
내용 정리
카카오에서는 kakao I Cloud 라는 퍼블릭 클라우드 서비스를 운영하고 있고, 해당 서비스의 모든 리소스를 쿠버네티스로 배포, 관리함
이러한 리소스를 서비스로 제공하기 위해 오픈스택* 을 사용
→ 각각의 서비스 마이크로서비스 형태로 이루어져 있기 때문에 관리가 어려우나, 이를 쿠버네티스 위에 올려서 운영함으로써 쿠버네티스 네이티브한 관리가 가능해짐
→ 즉, 리소스의 선언적 관리가 가능하고 컨트롤러 패턴* 을 통해 커스텀 컨트롤러를 구현함으로써 서비스의 장애가 발생하더라도 이를 자동으로 해결할 수 있도록 할 수 있음.
오픈 스택: 클라우드 개발을 위한 여러 인프라 서비스를 제공하는 오픈 소스
- 컨트롤러 패턴
- 리소스를 선언적으로 관리하기 위해 사용하는 디자인 패턴으로, 원하는 상태와 현재 상태를 주기적으로 체크하여, 다를 경우 싱크를 맞추기 위한 reconcile 로직을 반복적으로 실행
주요 컴포넌트
- Cache (Informer: 리소스의 스펙에 변화가 있을 때 이벤트 발생)
- Rate Limit Queue
Node Eliminate Operator
- 카카오 I Cloud 의 OverCloud 내 AZ 클러스터와 Hypervisor 노드의 상태를 감지하고 있다가 이슈가 발생했을 때, 다른 노드로 마이그레이션 하는 작업을 수행
느낀점
- 기존에 쿠버네티스 컨트롤러 패턴을 알고 있지 않다면 막 쿠버네티스을 활용해보고 있는 사람에게는 조금 어렵게 느껴질 수 있는 발표 였던 것 같음
- 다만 쿠버네티스 위에 배포되는 서비스가 많아지고 클러스터 규모가 커질수록 리소스를 직접 관리할 필요를 느낄 수 있기 때문에, 해당 발표에서 소개한 것처럼 커스텀 컨트롤러를 직접 개발하는 방법과 어떻게 적용할 수 있는지를 배워갈 수 있지 않을까 싶음