-
쿠버네티스 - 컨테이너 동작 flow & 구성 요소 & 크기 단위 비교Kubernetes/kubectl 시작 2023. 6. 8. 13:59
쿠버네티스에서 컨테이너 동작 Flow !
동작 flow는 이성미 강사님의 강의를 들으면서 직접 똑같이 그려보았늩데, 필자는 그리면서 좀 더 와 닿게 된 거 같다!
시간이 난다면 직접 손으로 그려보는 것을 추천함!
순서에 따라 한번 읽어 보고, 이런 흐름을 가지고 있구나 라고 생각하면 좋을 것 같음!
1. 쿠버네티스 구성 요소
1-1. 노드(node) 란?
- 클러스터 내 가상 섭, 즉 컴퓨팅 엔진 단위
- 마스너 노드와 워커 노드로 분리되어 있음
- 마스터 노드 : 전체 쿠버네티스 시스템을 관리 및 통제하는 쿠버네티스 컨트롤 플레인을 관장
- 워커 노드 : 배포하고자 하는 오플리케이션의 실제 실행을 수행
- 마스터 노드가 죽으면 클러스터를 관리할 노드가 없기에, 일반적으로 3개 정도의 마스터 노드를 띄어 노드를 관리함.
- 워커 노드도 물론 여러개 구성 할 수 있음!
1-2. 파드(pod)란?
쿠버네티스에서 생성하고 관리할 수 있는 배포 가능한 가장 작은 컴퓨팅 단위, 이와 동시에 하나 이상의 컨테이너 그룹
여기서 필자도 헷갈렸듯이, 파드와 컨테이너 이 둘의 관계는 어떤것인가? 라는 의문이 들게 되었다.
여기서 다시 정리(참고한 url)하면서, 나도 기억, 보는 사람도 기억하기를 바라며!
- 컨테이너 : 어플리케이션, 완전한 어플리케이션의 일부 기능 or 어플리케이션 그 자체 일 수 있음
- 만약 컨테이너가 완전한 어플리케이션이 일부 기능일 경우?
- 여러 개의 컨테이너들이 모여, 하나의 완전한 어플리케이션을 구성 할 것
- 이 때 여러 개의 컨테이너가 모여 하나의 파드가 됨 -> 이 파드가 완전한 어플리케이션이 됨!
- 즉, 싱글 vs 멀티가 있음 , 필자도 직접 뒤에서 파드를 구성해봄으로써, 어느 정도 구별할 수 있게됨!
- 만약, 컨테이너가 1개가 완전한 어플리케이션 기능을 갖추고 있을 경우
- 하나의 컨테이너 -> 하나의 파드 구성 가능 (싱글)
-> 파드에 정의된 여러 개의 컨테이너는 하나의 완전한 어플리케이션으로서 동작함!
참고 url : https://eng-sohee.tistory.com/129
쿠버네티스란? - 노드와 파드, 컨테이너 차이를 이해해보자
목차 쿠버네티스란 쿠버네티스 구성요소 - 노드 쿠버네티스 구성요소 - 파드 01. 쿠버네티스란 도커를 어느 정도 공부하다 보면, 쿠버 네티스에 대해서 많이 들어봤을 것이다. 쿠버네티스는 컨테
eng-sohee.tistory.com
[쿠버네티스의 크기 단위] - 헷갈리지 말 것
클러스터 > 노드 > 파드 > 컨테이너
와 같이 구성 및 분리되어 있음
<쿠버네티스의 아키텍쳐>
필자의 경우, 아이패드에 직접 그리는 것을 좋아함!
실제로 virtualbox에도 마찬가지로, 위와 같이 구성 하였음!
master(control-plane, node1, node2) -> 온프레미스 여도 설치하는데, 쉽지 않았음 ㅠㅠ
kubernetes cluster는 크게, master node, worker node 로 구성됨
- 쿠버네티스 컴포넌트
- 마스터 컴포넌트
- etct : key-value 타입의 저장소
- kube-apiserver : k8s api 를 사용하도록 요청을 받고 요청이 유효한지 검사
- kube-scheduler : 파드를 실행할 노드 선택
- kube-controller-manager : 파드를 관찰하며 개수를 보장
- 워커 컴포넌트
- kubelet : 모든 노드에서 실행되는 k8s 에이전트, 데몬 형태로 동작
- kube-proxy : k8s의 network 동작을 관리, iptables rule을 구성
- 컨테이너 런타임 : 컨테이너를 실행하는 엔진, docker (제일 많이 사용함) , containerd, runc 가 있음
- 마스터 컴포넌트
추가적으로, Addon도 존재함!
Addon 이란? 외부 연동 라이브러리와 같다고 생각하면 좋을 것 같음.
[에드온의 종류]
- 네트워크 에드온 : CNI - weave, calico, flaneld, kube-route ,...
- dns 에드온 : coreDNS
- 대시보드 에드온
- 컨테이너 자원 모니터링 : cAdvisor
- 클러스터 로깅
- 컨테이너 로그 , k8s 운영 로그들을 수집해서 중앙화
- ELK(ElasticSearch, Logstash, Kibana), EFK(ElasticSearch, Fluented, Kibana), DataDog
-> 필요한 것
'Kubernetes > kubectl 시작' 카테고리의 다른 글
쿠버네티스 - namespace의 정의 (0) 2023.06.08 container와 pod의 차이 - 쿠버네티스 (0) 2023.06.08 쿠버네티스 - yaml 템플릿 만들고 편리하게 써보기! (0) 2023.06.08 쿠버네티스 - 네임스페이스 Swithch (0) 2023.06.08 kubectl 본격적으로 사용하기 전 친해 지기 (0) 2023.06.08