티스토리 뷰
if kakao 2022를 보며 개인적으로 관심있던 세션들을 들으며 인상 깊었던 부분을 기록한 내용입니다.
Kakako i Cloud
i Cloud는 쿠버네티스 엔진과 IAM 등 모든 리소스를 쿠버네티스로 배포하고 관리하고 있다.
그리고 이러한 리소스들을 서비스로 제공하기 위한 도구인 오픈스택도 쿠버네티스로 관리되고 있다.
오픈스택의 모든 서비스들을 쿠버네티스로 운영함으로써 쿠버네티스 네이티브한 관리가 가능해졌다.
Cloud Native (CNCF)
클라우드 환경에서 실행되는 Scalable한 애플리케이션을 가능하게하는 기술
이를 확장한 Kubernetes Native란 쿠버네티스 환경에서 쿠버네티스 이점 중 가장 큰 요소인 선언적 관리가 가능한 기술을 말한다.
Controler Pattern
카카오의 Cloud는 두 가지로 구분할 수 있다.
User에 의해 만들어진 리소스들의 모임인 Over Cloud와
클라우드를 만들기 위한 리소스들의 모임인 Under Cloud이다.
오버클라우드에는 가용 영역별로 오픈 스택 하이퍼바이저가 올라가 있다. 이 하이퍼바이저가 올라가 있는 서버나 노드의 장애가 발생하더라도 쿠버네티스 클러스토로 배포 관리되고 하이퍼바이저는 쿠버네티스의 노드로 관리된다.
이렇게 모든 리소스가 쿠버네티스로 관리되는 환경이기 때문에 노드의 이슈가 발생하더라도 쿠버네티스의 컨트롤러 패턴을 통해 극복이 가능하다.
컨트롤러 패턴이란, 쿠버네티스에서 리소스를 선언적으로 관리하기 위해 사용하는 디자인 패턴이다.
이를 이해하기 가장 쉬운 예시는 ReplicaSet이다.
쿠버네티스 외에는 Endpoint Controller, Service Account Controller, Namespace Controller, Etcd Controller 등 수 많은 controller 가 존재하며 이 전체를 관장하는 것이 kube-controller-manager이다.
쿠버네티스 캐시 안에 존재하는 informer는 정의한 리소스들의 상태를 주시한다. 리소스의 스펙이 변화될 때마다 해당 리소스의 네임과 네임스페이스를 큐로 전달한다. 이 큐는 각 컨트롤러마다 존재하며 이벤트를 컨트롤러로 전달한다. 컨트롤러에서 쿠버네티스 클라이언트를 사용하여 대상 리소스가 원하는 상태가 되도록 reconcile이 실패하더라도 큐에 다시 넣어서 재시도 한다.
'웨비나' 카테고리의 다른 글
[if kakao 2022] 도커 없이 컨테이너 만들기 (1) | 2023.05.16 |
---|---|
Toss Slash 22 요약 (0) | 2023.02.22 |
[Naver Cloud Summit] 클라우드 네이티브를 구현하기 위한 여정 (0) | 2023.01.03 |
[if kakao 2022] kubernetes 안전하게 배포하기 (0) | 2022.12.19 |
[if kakao 2022] 1015 장애 회고 (0) | 2022.12.19 |