Kubernetes-Cluster
- 쿠버네티스 클러스터는 두 종류의 서버로 구성된다.
- 클러스터를 관리하는 마스터, 실제 컨테이러를 실행시키는 노드
마스터
- etcd, kube-apiserver, kube-scheduler, kube-controller-manager, kubelet, kube-proxy, docker 등의 컴포넌트가 실행된다.
etcd
- 고가용성을 제공하는 키-값 저장소.
- 필요한 모든 데이터를 저장하는 데이터베이스 역할.
- etcd에 있는 데이터를 백업하여 안정적으로 운영한다.
- 서버 하나당 프로세스 1개만 사용 가능.
kube-apiserver
- API를 사용할 수 있도록 하는 컴포넌트.
- 쿠버네티스는 마이크로서비스 아키텍처이므로 서로 분리된 컴포넌트 여러 개로 구성되어 있다. 쿠버네티스에서 보내는 모든 요청은 kube-apiserver를 이용해 다른 컴포넌트로 전달한다.
- 서버 여러 대에 여러 개를 사용할 수 있다.
kube-scheduler
- 클러스터 안에서 자원 할당이 가능한 노드 중 알맞은 노드를 선택해서 새롭게 만든 파드를 실행한다.
- 조건에 맞는 노드를 찾는다.
- 조건에는 어피니티 파드와 안티어피니티 만족 여부 등이 있다.
kube-controller-manager
- 파드를 관리하는 컨트롤러이다.
- 복잡도를 줄이기 위해 모든 컨트롤러를 바이너리 파일 하나로 컴파일 해 단일 프로세스로 실행된다.
노드
- kubelet, kube-proxy, docker 등의 컴포넌트가 실행된다.
kubelet
- 클러스터 안 모든 노드에서 실행되는 에이전트.
- 파드 컨테이너들의 실행을 직접 관리한다. 이 때 노드 안에 있는 컨테이너라도 쿠버네티스가 만들지 않은 컨테이너는 관리하지 않는다.
- 클러스터 안에 별로의 가상 네트워크 동작을 관리하는 컴포넌트이다.
- 각 컴포넌트 중심에는 kube-apiserver가 있다.
- 모든 통신은 kube-apiserver를 거치고, etcd는 kube-apiserver만 접근할 수 있다.
- 노드의 kubelet은 kube-apiserver와 통신하면서 파드의 생성, 관리, 삭제를 담당한다.
- 노드의 kube-proxy는 마스터와 다르게 컨테이너가 아니라 서버 프로세스로 실행할 수 있다.
애드온
- 클러스터 안에서 필요한 기능을 실행하는 파드이다.
- 네임 스페이스는 kube-system이며 애드온으로 사용하는 파드들은 디플로이먼트, 리플리케이션 컨트롤러 등으로 관리한다.
네트워킹 애드온
- 쿠버네티스는 클러스터 안에 가상 네트워크를 사용할 때 kube-proxy 이외에 네트워킹 애드온을 사용.
- 아마존 웹 서비스, 애저, 구글 클라우드 등 클라우드에서 제공하는 쿠버네티스에는 별로의 애드온을 제공하지만 직접 서버에 구성한다면 네트워킹 애드온을 설치해서 사용해야 한다.
DNS 애드온
- 클러스터 안에서 동작하는 DNS 서버이다.
- 쿠버네티스 안에서 실행된 컨테이너 들은 자동으로 DNS 서버에 등록된다.
728x90
반응형
'DevOps > Kubernetes' 카테고리의 다른 글
[Kubernetes] 쿠버네티스 구조 (0) | 2024.07.29 |
---|---|
[Kubernetes] helm이란? (0) | 2024.07.22 |
[Kubernetes] EmptyDir Volume (0) | 2024.07.15 |
[kubernetes] PV, PVC란? (0) | 2024.07.15 |
[kubernetes] Node란 (0) | 2024.07.10 |