Kubernetes(k8s)란?
한마디로 컨테이너를 관리하는 플랫폼이다.
- 컨테이너 플랫폼
- 마이크로서비스 플랫폼
- 이식성 있는 클라우드 플랫폼
구성요소 및 API
마스터
클러스터의 컨트롤 플레인 제공
- API 서버(Kube-apiserver)
- 쿠버네티스 클러스터의 모든 구성요소들은 API 서버를 통해 통신함
- etcd
- 클러스터 데이터의 키-값 저장소
- 쿠버네티스 컨트롤러 관리자(kube-controller-manager)
- 클러스터의 상태를 감시하고 필요한 상태로 이행하는 컨트롤 기능 담당
- Node controller: 노드 상태 감시&대응
- Replication controller: 복제 컨트롤러를 사용하는 모든 오브젝트 관리 & Pod 유지
- Endpoint controller: Service와 Pod 연결
- Service account 및 Token controller: namespace, account, token 담당
- 클러스터의 상태를 감시하고 필요한 상태로 이행하는 컨트롤 기능 담당
- 클라우드 컨트롤러 관리자(cloud-controller-manager)
노드
쿠버네티스의 컨테이너 런타임 환경 제공
즉, 실제로 일하는 애들
- kubelet
- 각 노드에서 실행되는 에이전트
- 마스터로부터 제공받은 파드의 구성정보를 받아 컨테이너의 동작을 관리
- 프록시(kube-proxy)
- 호스트 레벨의 네트워크 규칙 구성
- 외부 연결을 파드에 대한 포워딩 담당
- 컨테이너 런타임
- 컨테이너 동작을 책임지는 구성요소
- 기본적으로 도커 플랫폼 사용