쿠버네티스란?
컨테이너 기반의 애플리케이션을 개발하고 배포할 수 있도록 설계된 오픈 소스 플랫폼
컨테이너 오케스트레이션 ( 시스템 전체를 통괄하고 여러개의 컨테이너를 관리) 도구
Docker | k8s |
한대의 물리적 서버 | 여러 대의 물리적 서버 |
도커 컴포즈 | 매니페스트 |
컨테이너 생성에만 관여 | 컨테이너 상태를 유지(배포 , 관리) |
1) 설치환경
- 개발용도
: minikube, Docker for Window 에 내장된 쿠버네티스=> 한대의 컴퓨터에 마스터노드와 워커노드 구축 - 테스트/ 운영 용도
: kops, kubespray, kubeadmin, EKS, AKS,GKE 등
2) cluster
: 애플리케이션 컨테이너를 실행하기 위한 일련의 노드 머신
마스터 노드와 워커 노드로 구성
마스터 노드 | 워커노드 |
전체적인 제어 담당 | 실제 동작을 담당 |
-kube-apiserver : 외부와 통신하는 프로세스, kubectl로부터 명령을 전달받아 실행 - kube-controller-manager : 컨트롤러를 통합 관리, 실행 - kube-scheduler : 파드를 워커노드에 할당 - cloud-controller-manager : 클라우드 서비스와 연동해 서비스 생성 - etcd : 클러스터 관련 정보 전반을 관리하는 데이터 베이스 => control-plane을 통해 워커노드를 관리 |
- kube-let : 마스터 노드의 kube-scheduler와 연동하며 워커노드에 파드릴 배치하고 실행 실행 중인 파드의 상태를 정기적으로 모니터링하여 kube-scheduler에 통지 - kube-proxy : 네트워크 통신의 라우팅 메커니즘 |
3) 쿠버네티스 리소스
pod | 기본적으로 컨테이너 + 볼륨, 쿠버네티스에서 관리하는 가장 작은 단위 |
node | 컨테이너를 배치하는 서버 |
replicaset | 파드의 수를 관리하는 반장 |
deployment | 파드의 디플로이(배포)를 관리 |
daemonset | 각 노드에 파드를 하나씩 배치 |
service | 여러개의 파드를 이끄는 반장 |
Ingress | 외부에서 내부로 들어오는 네트워크 요청 |
namespace | 리소스를 논리적으로 구분하는 장벽 |
configMap | 컨테이너에서 필요한 환경설정 내용을 컨테이너와 분리해서 제공해 주기 위한 기능 |
secret | 비밀번호, OAuth 토큰, ssh 키 같은 민감한 정보들을 저장하는 용도로 사용 |
Job | 특정 개수만큼의 파드를 정상적으로 실행 / 종료 되는 것을 보장 |
CronJob | Job을 시간 기준으로 관리하도록 생성 |
Storage | 저장소... |
Statefulset | 파드 집합의 디플로이먼트와 스케일링을 관리하고, 파드들의 순서 및 고유성을 보장 |
리소스 관련 내용과 실습은 정리 후 차례대로 링크 넣을 예정!
728x90