반응형
쿠버네티스에서 컨테이너 동작 Flow
사용 주체
- 개발자
- 운영자
동작 순서
- 컨테이너 빌드
- main ui container, log in container, pay container 등
- 저장소에 컨테이너 이미지 push
- 사내 저장소, docker hub 등
- 사용 주체가 명령어를 통해 control-plane에 컨테이너 실행 요청
- 명령어: CLI(kubectl), yaml 등
- control-plane의 rest api server에서 요청을 받아 어느 노드에 컨테이너를 배치할지 스케줄러에게 요청
- control-plane의 스케줄러가 노드의 상태를 보고 적합한 노드를 선택해 rest api server에게 응답
- control-plane의 rest api server가 응답 받은 내용을 실행할 노드의 kubelet에 요청(전달)
- kublet이 요청을 받아 도커 명령어로 바꿔서 도커에게 실제 컨테이너 실행 요청
- 도커가 저장소에서 컨테이너 이미지를 검색한 후 컨테이너로 실행한 후 pod라는 단위로 관리
쿠버네티스 컴포넌트
- 마스터 컴포넌트
- etcd
- key-value 타입의 저장소
- 워크 노드에대한 상태 정보 포함
- 하드 정보, 도커 컨테이너 동작 상태 등
- 쿠버네티스 상태 정보 포함
- api에 워크노드 정보 제공
- kube-apiserver
- k8s API를 사용하도록 요청을 받고 요청이 유효한지 검사
- 모든 요청을 관리
- kube-scheduler
- 파드를 실행할 노드 선택
- kube-controller-manager
- 파드를 관찰하며 개수를 보장
- 기존 컨테이너 동작 중인 파드 다운시 다른 파드에서 동작할 수 있게 api에 요청
- 파드를 관찰하며 개수를 보장
- CoreDNS
- 애드온 프로그램
- etcd
- 워커 노드 컴포넌트
- kubelet
- 모든 노드에서 실행되는 k8s 에이전트
- 데몬 형태로 동작
- cAdvisor 컨테이너 모니터링 툴이 포함됨
- 컨테이너, 하드 상태 정보 수집
- kube-proxy
- k8s의 network 동작을 관리
- iptables rule을 구성
- 실제 컨테이너를 실행해주는 역할
- 컨테이너 런타임
- 컨테이너를 실행하는 엔진
- docker, containerd, runc
- kubelet
- 애드온 프로그램
- 네트워크 애드온
- CNI(Container network interface
- 네트워크 간 통신 지원
- weave, calico, flaneld, kube-route 등
- CNI(Container network interface
- dns 애드온
- coreDNS
- 대시보드 애드온
- 웹 UI
- 쿠버네티스 전체 관리
- 컨테이너 자원 모니터링
- cAdvisor
- 클러스터 로깅
- 컨테이너 로그, k8s 운영 로그들은 수집해서 중앙화
- 마스터 노드 여러개, 워크 노드 여러개인 경우
- ELK(ElasticSearch, Logstash, Kibana), EFK(ElasticSearch, Fluentd, Kibana), DataDog
- 컨테이너 로그, k8s 운영 로그들은 수집해서 중앙화
- 네트워크 애드온
Reference
반응형
'Kubernetes(k8s) > 따배쿠(따라하면서 배우는 쿠버네티스) 학습' 카테고리의 다른 글
[k8s]Kubernetes yaml 템플릿 & API (0) | 2023.02.13 |
---|---|
[k8s]Kubernetes namespace (0) | 2023.02.10 |
[k8s]kubectl실습(command, pod 생성) (0) | 2023.02.08 |
[k8s]kubectl 개요 (0) | 2023.02.08 |
[k8s]쿠버네티스 설치하기 (0) | 2023.02.08 |