이 내용은 Kuberentes의 공식문를 참고하여 작성 함.
https://kubernetes.io/docs/concepts/overview/components/
Kubernetes는 Control Plane와 Node 들로 구성 된다
- Control Plane : 클러스터에 대한 스케줄링, 이벤트 감지 응답 등을 kubernetes 클러스터 시스템 노드
- Node : 컨테이너화 된 애플리케이션을 실행하는 노드
위 컴포넌트는 kubectl 명령어를 통해 pod들을 확인할 수 있다.
[root@m-k8s vagrant]# kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-99c9b6f64-wgjpw 1/1 Running 0 9m14s
kube-system calico-node-grvm8 1/1 Running 0 4m23s
kube-system calico-node-h6vvv 1/1 Running 0 9m14s
kube-system calico-node-k49xh 1/1 Running 0 7m44s
kube-system calico-node-n2wjq 1/1 Running 0 6m3s
kube-system coredns-66bff467f8-nmnvc 1/1 Running 0 9m14s
kube-system coredns-66bff467f8-r89xr 1/1 Running 0 9m14s
kube-system etcd-m-k8s 1/1 Running 0 9m29s
kube-system kube-apiserver-m-k8s 1/1 Running 0 9m30s
kube-system kube-controller-manager-m-k8s 1/1 Running 0 9m30s
kube-system kube-proxy-8gcv6 1/1 Running 0 4m23s
kube-system kube-proxy-bpdn2 1/1 Running 0 6m3s
kube-system kube-proxy-f2jsf 1/1 Running 0 9m14s
kube-system kube-proxy-vvm6n 1/1 Running 0 7m44s
kube-system kube-scheduler-m-k8s 1/1 Running 0 9m30s
Control Plane Component
1. Kube-apiserver
- Kubernetes의 API를 제공하는 Component
- 수평적 확장 설계
- 여러 인스턴스를 수행하여 인스턴스 간 트래픽 균형 조절
2. etcd
- 모든 클러스터 데이터에 대해 kubernetes의 백업 저장소로 사용하는 Component
3. kube-scheduler
- 할당 된 노드를 감시하고, 새로 생성된 pod가 실행될 노드를 선택하는 Component
4. kube-controller-manager
- 컨트롤러 프로세스를 실행하는 Component
- 논리적으로 각 컨트롤러는 별도의 프로세스 지만, 복잡성을 줄이기 위해 단일 바이너리로 실행 됨
- Node Controller, Job Controller, EndpointSlice Controller, Service Account Contoller 등이 있음
5. Cloud-Controller-Manager
- 클라우드별 제어로직을 포함하는 Component
- 필자의 개발환경은 VM으로 존재하지 않음
- Node Controller, Route-Controller, Service Controller 등이 있음
Node Component
1. Kublet
- 클러스터의 각 노드에서 실행되는 에이전트
- 컨테이너 pod가 에서 잘 수행 되는지 확인하는 component
2. kube-proxy
- 클러스터의 각 노드에서 실행되는 네트워크 프록시로 kubernetes 서비스의 일부를 구현 함
- 노드에서 네트워크 규칙을 유지하며, pod로의 네트워크 통신 허용
3. container runtime
- 컨테이너 실행을 담당하는 compoenet
- containerd, CRI-O 등이 있음
Addons
Kubernees 리소스(DaemonSet, Deployment 등)을 사용하여 크러스터 기능 구현
1. DNS
- Kubenertes 필수 Addons
- Kubernetes 서비스에 대한 DNS 레코드를 제공하는 환경의 다른 DNS 서버와 함께 제공
- Kubernetes에서 시작한 컨테이너는 DNS 검색에 이 DNS 서버 검색을 자동으로 포함
2. Web UI
- Kubernetes 클러스터를 위한 범용 웹 기반 UI
- 클러스터 Trouble Shooting 및 운영 시 사용
3. Container Resource Monitoring
- 중앙 데이터베이스에 컨테이너에 대한 정보를 기록하고 UI로 제공
4. Cluster-level logging
- 클러스터 수준 log 정보를 중앙 데이터베이스에 저장하는 역할
'kubernetes' 카테고리의 다른 글
[kubernetes] static pod란 (0) | 2022.10.31 |
---|---|
[kubernetes] pod란? (0) | 2022.10.26 |
[kubernetes] namespace 란? (0) | 2022.10.21 |
[kubernetes] etcd 및 백업 복구 방법 (0) | 2022.10.21 |