Kubernetes의 모든 것
· 약 9분
매번 용어 찾아보는 게 귀찮아서 정리했다. 어떤 기능을 yaml 로 구성해야하는지 감이 오는 듯하다.
- 컨테이너가 배치되는 서버
- 쿠버네티스 클러스터의 관리 대상으로 등록된 도커 호스트
- 쿠버네티스 클러스터는 마스터와 노드의 그룹으로 구성
kubectl get nodes
마스터 노드
- 스웜의 매니저노드와 비슷한 느낌이다.
- kube-apiserver: 쿠버네티스 API를 노출하는 컴포넌트 kubectl로부터 리소스를 조작하라는 지시를 받음
- ectd: 고가용성을 갖춘 분산 Key/Value 스토어로 쿠버네티스 클러스터의 백킹스토어로 쓰인다. (CAS)
- kube-scheduler: 노드를 모니터링하고 컨테이너를 배치할 적절한 노드탐색
- kube-controller-manager: 리소스를 제어하는 컨트롤러 실행
일반적인 (non-managed, GKE 등이 없는) 환경에선 마스터 노드서버가 단일 장애지점 (SPOF)가 되지 않도록 마스터를 3대 두는 것이 필수다.
네임스페이스
- 쿠버네티스 클러스터 안의 가상 클러스터
- 네임스페이스마다 권한을 줄 수 있으므로 개발팀이 클 때 유용하다.
- 기본으론
default, docker, kube-public, kube-system
네임스페이스가 있다. kubectl get namespace
파드
- 컨테이너의 집합 중 가장 작은 단위로, 컨테이너의 실행 방법을 정의
- 적어도 하나 이상의 컨테이너로 이뤄져있다.
- nginx reverse proxy + application web server