4.1 쿠버네티스 클러스터의 전체 구조
4.2 쿠버네티스의 주요 컴포넌트
- 마스터용 컴포넌트
- Etcd
/etc/kubernetes/manifests/etcd.yaml : 설정파일 - Kube-apiserver
클러스터로 온 요청이 유효한지 검증함. (요청을 실행할 권한이 있는지 검사한 후 응답해줌)
쿠버네티스는 MSA이므로 서로 분리된 컴포넌트 여러 개로 구성되어 있음.
쿠버네티스에 보내는 모든 요청은 kube-apiserver를 이용해서 다른 컴포넌트로 전달함
/etc/kubernetes/manifests/kube-apiserver.yaml : 설정파일 - Kube-scheduler
파드가 할당 될 노드를 결정함 - Kube-controller-manager
2. 노드용 컴포넌트
- Kubelet
클러스터 안 모든 노드에서 실행되는 에이전트. 파드 컨테이너들의 실행을 직접 관리함.
컨테이너가 정상적으로 실행되는지 헬스 체크를 진행함. - Kube-proxy
클러스터 안 가상 네트워크의 동작을 관리하는 컴포넌트
3. 애드온
클러스터 안에서 필요한 기능을 실행하는 파드.
(네임스페이스) kube-system
- 네트워크 애드온(CNI)
kube-proxy외에 네트워크 플러그인을 사용하여 가상 네트워크를 구성함 - DNS 애드온
클러스터 안에서 동작하는 DNS서버
쿠버네티스 안에 실행된 컨테이너들은 자동으로 DNS 서버에 등록됨
kube-dns, CoreDNS 등이 있음 - 대시보드 애드온
웹 UI로 현황을 볼 수 있음. - 컨테이너 자원 모니터링
클러스터 안에서 실행 중인 컨테이너의 상태를 모니터링하는 애드온
CPU나 메모리 같은 데이터들을 볼 수 있음.
cAdvisor : 컨테이너 모니터링 도구. 메트릭 서버를 모니터링에 이용함.
- 클러스터 로깅
클러스터 안 개별 컨테이너의 로그와 쿠버네티스 구성 요소의 로그들을 중앙화한 로그 수집 시그템에 모아서 보는 애드온
4.3 오브젝트와 컨트롤러
사용자는 쿠버네티스에 자원의 ’바라는 상태’를 정의하고 일치하도록 오브젝트를 생성/삭제함
- 오브젝트
파드,서비스, 볼륨, 네임스페이스.. - 컨트롤러
레플리카셋, 디플로이먼트, 스테이트풀셋, 데몬셋, 잡..
- 네임스페이스
쿠버네티스 클러스터 하나를 여러 개 논리적인 단위로 나눠서 사용
클러스터 하나를 여러 개 팀이나 사용자가 함께 공유할 수 있음.
default : 기본 네임스페이스
kube-system : 쿠버네티스 시스템에서 관리하는 네임스페이스. 관리용 파드나 설정이 있음
kube-public : 클러스터 안 모든 사용자가 읽을 수 있는 네임스페이스
kube-node-lease : 각 노드의 임대 오브젝트들을 관리하는 네임스페이스
‘ kubectl create namespace “네임스페이스” ‘ : 네임스페이스 생성
‘kubectl config current-context’ : 현재 네임스페이스 확인
‘kubectl config get-contexts ____’ : 해당 컨텍스트 정보 확인하기
‘kubectl config set-context _____ —namespace= _____’ : 네임스페이스 변경 - 템플릿
오브젝트나 컨트롤러가 어떤 상태여아 하는지 적용할 때 YAML 형식의 템플릿을 사용함.
'DevOps > Kubernetes' 카테고리의 다른 글
[ 쿠버네티스 입문: 90가지 예제로 배우는 컨테이너 관리 자동화 표준 ] Chapter06. 컨트롤러 (0) | 2021.07.21 |
---|---|
[ 쿠버네티스 입문: 90가지 예제로 배우는 컨테이너 관리 자동화 표준 ] 5. 파드 (0) | 2021.07.21 |
[ 쿠버네티스 입문: 90가지 예제로 배우는 컨테이너 관리 자동화 표준 ] 3. 쿠버네티스로 컨테이너 실행하기 (0) | 2021.07.21 |
[ 쿠버네티스 입문: 90가지 예제로 배우는 컨테이너 관리 자동화 표준 ] Chapter02. 쿠버네티스 설치하기 (0) | 2021.07.21 |
[ 쿠버네티스 입문: 90가지 예제로 배우는 컨테이너 관리 자동화 표준 ] Chapter01. 쿠버네티스 소개 (0) | 2021.07.21 |