본격적인 CKA 준비에 앞서, K8s의 구성과 동작 구조를 알아보고 각각 구성 요소들이 어떻게 움직이는지 알아보자.
쿠버네티스 클러스터를 구성하는 노드는 크게 마스터 노드(컨트롤 플레인), 워커 노드 두 개로 분류한다.
각각의 노드를 구성하는 주요 구성요소들은 다음과 같다.
Cluster의 상태를 관리하고, 필요한 변경 사항을 조정한다.
다양한 매니저를 하나의 바이너리로 통합한 도구.
Node Controller
노드가 다운되었을 때 통지하고, 대응한다.
Replication Controller
모든 Replication Controller 오브젝트에 대해 알맞은 수의 파드를 유지시킨다.
Endpoint Controller
서비스와 파드를 연결한다.
Service Account & Token Controller
새로운 네임스페이스에 대한 기본 계정과 API 접근 토큰을 생성한다.
쿠버네티스 서비스 추상화를 구현해, 클러스터 내의 파드가 서비스를 통해 다른 파드나 애플리케이션에 연결할 수 있게 해준다.
kube-proxy의 주요 기능은 다음과 같다.
Service IP 및 Port 관리
각 서비스에 대한 IP 주소와 포트를 관리하고, 이들을 해당 서비스에 연결된 파드의 IP와 Port로 매핑한다.
Load-Balancing
여러 개의 파드가 하나의 서비스 뒤에서 동작할 때, 들어오는 요청을 각 파드에 균등하게 분배한다.
Session Affinity
필요한 경우, 특정 클라이언트에서 오는 연속적인 요청들이 동일한 파드로 전달되도록 할 수 있다(Sticky Session).