반응형
5.1.1 k8s 클러스터를 구성하는 코어 프로세스(컨테이너)[1]
- kubectl
- k8s 클러스터를 조작하기 위한 도구
- 가장 빈번하게 이용되는 커맨드 라인 인터페이스
- kube-apiserver
- kubectl 등의 API 클라이언트로부터 오는 REST요청을 검증
- API 오브젝트를 구성하고 상태를 보고
- kube-scheduler
- 쿠버네티스의 기본 스케줄러
- 새로 생성된 모든 파드에 대해 실행할 최적의 노드를 선택
- 스케줄러는 파드가 실행 가능한 노드를 찾은 다음 점수를 계산하여 가장 점수가 높은 노드를 선택
- kube-controller-manager
- 컨트롤러를 구동하는 마스터상의 컴포넌트
- cloud-controller-manager
- API를 통해서 클라우드 서비스와 연계하는 컨트롤러
- 클라우드 업체에서 개발
- etcd
- k8s 클러스터의 모든 관리 데이터는 etcd에 저장
- CoreOS가 개발한 분산 키/값 저장소로 신뢰성이 요구되는 핵심 데이터의 저장 및 접근을 위해 설계
- kubelet
- 각 노드에서 다음과 같은 역할을 수행
- 파드와 컨테이너의 실행
- 파드와 노드의 상태를 API 서버에 보고
- 컨테이너의 동작을 확인하는 프로브 실행
- 내장된 cAdvisor를 통해 메트릭 수집 및 공개
- 각 노드에서 다음과 같은 역할을 수행
- kube-proxy
- kube-proxy는 각 노드에서 동작하며 로드밸런싱 기능을 제공
- 서비스와 파드의 변경을 감지하여 최신 상태로 유지
- iptables 규칙을 관리
- 서비스명과 ClusterIP 내부 DNS에 등록
- kube-proxy는 각 노드에서 동작하며 로드밸런싱 기능을 제공
- coredns
- 파드가 서비스 이름으로부터 IP주소를 얻기 위해 사용
- 버전 1.11부터, kube-dns 대신 coredns가 사용
- kube-dns가 부족했던 신뢰성, 보안성, 유연성이 coredns에서 개선
- CoreDNS 프로젝트는 CNCF가 관리
5.1.2 애드온 컴포넌트
- kube-flannel
- kube-flannel은 모든 노드에서 실행되어 여러 노드 사이에서 IPv4 네트워크를 제공
- 컨테이너(파드)는 K8s 클러스터 내부에서 사용되는 IP 주소를 바탕으로 다른 노드에 있는 파드와 통신
- 네트워크 접근 제어가 필요한 경우 calico를 사용
- calico-kube-controllers
- calico를 위한 컨트롤러, 데이터 스토어로서 etcd를 이용하기 위해 사용
- calico-node
- 모든 노드에서 실행되어 노드 간 파드의 통신, 라우팅, 네트워크 접근 관리 기능을 제공
- kubernetes-dashboard
- Web 대시보드
- heapster
- kubelet에 내장된 cAdvisor로부터 메트릭 정보를 수집
- 버전 1.11부터 지원이 중단
- metrics-server
- heapster를 대신해서 버전 1.8부터 도입
- API의 aggregation layer를 통해서 K8s 클러스터 전체로부터 메트릭을 수집
5.2.1 쿠버네티스 계층 구조
※ 클라이언트 도구인 kubectl을 통해 K8s 클러스터를 조작하는 사람을 제일 위에 놓고, K8s 클러스터의 구성도를 그림
반응형
'개발 > 클라우드 엔지니어' 카테고리의 다른 글
우분투에 쿠버네티스 설치하기 4(TEST) (1) | 2024.01.23 |
---|---|
우분투에 쿠버네티스 설치하기 2 (1) | 2024.01.18 |
우분투에 쿠버네티스 설치하기 1 (0) | 2024.01.17 |
2 컨테이너의 이해 (0) | 2024.01.16 |
1. 쿠버네티스란? (1) | 2024.01.15 |