KJH
K8S 소개 본문
1. K8S
쿠버네티스는 컨테이너 오케스트레이션을 위해 등장했고, 컨테이너화된 애플리케이션을 배포, 확장 관리를 자동화하는 오픈 소스 시스템
2. 구조
2.1 클러스터
- 여러대의 컴퓨터를 하나로 묶은 단위
- 클러스터에 구성되어 있는 서버들은 노드라고 칭하고, 클러스터는 노드들의 집합
2.2 마스터노드
- 개발자 및 클러스터에 관한 전반적인 결정(스케줄링 등)을 수행
- MASTER는 API서버를 통해 K8S를 관리하고, API-SERVER를 통해서 통신 한다
2.2.1 마스터노드 구성요소 (4가지)
api-server
- 쿠버네티스 통신을 위한 핵심 구성 요소이며, http를 통해 내부 및 외부 인터페이스를 제공
Controller Manager
- apiserver를 통해 클러스터의 상태를 감시하고, 지정한 replica에 맞게 변경 한다
Scheduler
- 각 노드에서 리소스 사용률을 추적하여 Pod가 실행되어야 하는 노드를 선택 한다
etcd
- 쿠버네티스에서 사용하는 정보를 key-value 형태로 저장하는 저장소
- master NODE를 HA로 사용할 경우 etcd를 위해서 master NODE는 최소 3대로 구성하여야 하고, 홀수로 맞춰야 한다 (쿠버네티스 권고사항)
2.3 워커노드
- 마스터에 의해 명령을 받고 실질적인 서비스를하는 노드
- API 서버의 요청을 Kubelet을 통해 수행 한다
2.3.1 워커노드 구성요소 (3가지)
kubelet
- 모든 노드에서 실행되는 서비스로, pod 및 컨테이너 시작 등의 작업을 수행하는 구성 요소
kube-proxy
- iptables룰을 통해 통신하고, 쿠버네티스 네트워킹 서비스를 용이하게 한다
pod
- 클러스터에서 실행중인 하나 이상의 컨테이너 그룹을 의미
3. k8s 배포 종류
kubeadm
- 가장 많이 사용하고, k8s가 필요로 하는 모듈을 수동으로 설치를 해야 하기 때문에 난이도가 있다
- k8s을 빠르게 이해하기에 가장 좋은 배포 방식
kubespray
- 간단하게 k8s가 설치 되므로, 사전에 k8s에 대한 지식이 있다면 편리한 배포 도구
rke
- rancher에서 만든 배포 방식
- rke에서 요구하는 설정만 맞춰 놓으면, 클러스터 설치 및 삭제가 용이
4. 경량화된 k8s 배포 도구
minikube
- 로컬 테스트 및 개발을 위한 공식 미니 배포판
- k8s와 동일한 기반에서 실행
microk8s
- 리눅스 전용이고, 테스트를 위해 사용
k3s
- rancher에서 만든 배포 방식
- 노드의 프로세스에서 동작하고, iot장비에 주로 사용
※ 이미지 출처
1. https://zetawiki.com/wiki/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4_%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98
2. https://pearlluck.tistory.com/135?category=854934
'Kubernetes' 카테고리의 다른 글
K8S Volume (0) | 2021.10.06 |
---|---|
K8S Ingress (0) | 2021.10.04 |
K8S Service (0) | 2021.10.02 |
K8S Pod (0) | 2021.09.25 |
K8S scheduler (0) | 2021.09.22 |