유튜브 : 초보를 위한 쿠버네티스 안내서 를 보고 공부한 내용을 정리했습니다.
가장 작은 배포 단위
컨테이너를 감싼것 (여러개의 컨테이너가 하나의 pod에 속할 수 있음)
전체 클러스터에서 고유한 IP를 할당받아서 다른 pod들끼리의 통신이 가능
여러개의 pod을 관리
새로운 pod을 생성할땐 pod template를 참고하여 생성 (ex. replicas=4인데 3개 밖에 없네? 만들어야지)
배포버전을 관리
내부적으로 replica set을 이용하여 버전관리
daemon set : 모든 노드에 하나씩만 떠있길 원하는 팟을 관리할때
stateful sets : 순서대로 사용하거나 같은 pod을 재활용할때
job : 한번 실행하고 죽는 pod
클러스터 내부에서 사용하는 프록시
pod은 동적이이므로, 고유 IP를 통해 접근하기 위해 ClusterIP(고유 IP)를 가짐
그래서 클러스터 내부에서 서비스 연결은 DNS를 사용
다만 내부에서만 통신가능하고 외부에서 접근 불가능하기 때문에 외부접근을 위하여 nodeport 등장
노드(host)에 노출되어 외부에서 접근 가능한 서비스
하나의 IP주소를 외부에 노출
각각의 nodeport 를 통신할때 중앙에서 거쳐가야하는 하나의 관리기관
ex) web에서의 요청 -> service (Loadbalancer) : 해당 nodeport로 연결 -> service(node port) : 해당 cluster로 연결 -> service(cluster ip) : 해당 pod으로 연결 -> 해당 Pod
도메인 또는 경로별 라우팅 (ex) Nginx, HAProxy, ALB 등등)
요청마다 전부 loadbalancer를 만들지 않고, 도메인 혹은 경로별로 분기하도록 한다.
volume - storage(EBS, NFS...)
Namespace - 논리적인 리소스 구분
ConfigMap / Secret - 설정
ServiceAccount - 권한 계정
Role/ClusterRole - 권한 설정 (get, list, watch, create)