선생님, 개발을 잘하고 싶어요.

[k8s] 매니징 쿠버네티스 - 아키텍처 본문

CS/Cloud

[k8s] 매니징 쿠버네티스 - 아키텍처

알고싶은 승민 2021. 6. 10. 00:19

k8s는 분산 시스템을 쉽게 배포하고 관리하는 분산 시스템이다.

개념

선언적 구성

사용자는 단순히 원하는 상태를 선언한다.

예를 들어, "내 웹 서버에 레플리카를 항상 5개씩 실행하고 싶다."고 선언하는 것.

이러한 원하는 상태를 YAML, JSON과 같은 구조화된 언어를 사용해서 표현한다.

컨트롤러

쿠버네티스는 분산 방식으로 구성되어있다.

단인 컨트롤러 대신, 많은 수의 컨트롤러가 각자의 제어 루프를 수행한다.

각자 작은 문제에 집중하는 식으로 책임이 철저하게 분리되어 있어야 한다.

이 때문에 쿠버네티스의 전체적인 동작을 이해하는 데 어려움이 따른다.

이러한 쿠버네티스 시스템 구성 요소 전체에 반복되는 제어 루프란?

  1. 원하는 상태를 얻는다.
  2. 관찰한다.
  3. 관찰 결과와 원하는 상태의 차이점을 찾는다.
  4. 원하는 상태가 일치하도록 조취한다.

집에서 사용하는 온도 조절기를 떠올리면 제어 루프를 이해하는 데 도움이 된다.

사람이 "24도"로 선언하면 온도 조절기가 자동으로 24도 보다 높을 때는 온도를 낮추고, 24도 보다 낮을 때는 온도를 높히는 식으로, 원하는 상태와 일치하도록 조취할 것이다.

암시적/동적 그룹화

쿠버네티스에서는 그룹을 암시적으로 정의함.

레이블, 레이블 쿼리, 레이블 셀렉터로 수행된다.

구조

유닉스 철학

각자 일을 잘 수행하는 작은 조각, 즉 모듈화를 기반으로 함.

유연함을 얻을 수 있다. 시스템의 다른 부분을 신경 쓰지 않고 조각만 교체가 가능하다.

하지만, 이해하기가 어렵다.

API 기반 상호작용

구성 요소간 모든 상호작용이 중앙 집중식 API로 이루어짐.

이로 인해서

  1. 시스템의 어느 부분도 다른 어떤 부분보다 특권을 갖지 않고 상호작용 한다.
  2. 따라서, 모든 구성 요소를 대체 구현하여 교체할 수 있다.

구성 요소

실제 장비 집합을

  • 워커 노드
  • 헤드 노드

두 그룹으로 나눈다.

k8s 인프라를 구성하는 대부분은 헤드(head), 제어(control), 플랜(plan) 노드에서 실행된다.

실제 작업은 워커 노드에서 수행된다.

구성 요소가 생성되면 k8s 클러스터에 스케줄 된다.

헤드 노드

쿠버네티스 API기능 구현, 일반적으로 헤드 노드를 공유하는 사용자 컨테이너는 없다.

etcd

클러스터의 모든 오브젝트가 유지되는 키/값 저장소를 만든다.

  1. 낙관적인 동시성
  2. 비교 후 교환

API 서버

쿠버네티스 클러스터에 직접 접근할 수 있는 유일한 서버.

클라이언트와 etcd에 저장된 API 오브젝트 사이의 모든 상호작용을 중개.

스케줄러

파드가 실행될 위치를 찾는 것

API 서버에서 스케줄되지 않은 파드를 검색한 다음, 이들을 실행할 최적의 노드를 결정한다.

컨트롤러 관리자

제어 루프를 실행하는 책임을 가짐.

모든 노드의 구성 요소

모든 노드에 공통적인 몇 가지 구성 요소들.

쿠블렛 (kubelet)

클러스터의 일부인 모든 시스템의 노드 데몬.

사용 가능한 CPU, 디스크, 노드의 메모리를 큰 쿠버네티스 클러스터에 연결하는 다리.

API 서버와 통신하여 노드에서 실행되어야 하는 컨테이너를 찾음.

컨테이너의 상태를 API 서버에 전달함. (이를 통해서 다른 컨트롤러 관리자가, 현재 컨테이너의 상태를 볼 수 있는 것)

컴퓨터에서 실행될 것으로 예상되는 컨테이너의 상태를 확인하고 다시 시작하는 일을 한다.

kube-porxy

쿠버네티스 Server 로드 밸런서 네트워킹 모델 구현 담당.

쿠버네티스 클러스터의 모든 Service에 대한 Endpoint 오브젝트를 항상 감시.

노드의 네트워크를 프로그래밍하여,

Service의 가상 IP 주소에 대한 요청을 실제 Service를 구현하는 엔드포인트로 라우팅함.

스케줄된 구성 요소

쿠버 DNS

쿠버네티스 Service가 생성 되면, 가상 IP 주소를 얻지만

DNS 서버에 프로그래밍 되면 쉽게 검색될 수 있다.

Comments