2020년
그림이 잘 되어 있는 책
30%는 도커를 다룬다.
70%는 쿠버네티스를 다룬다.
기초 실습부터 잘 나와 있다.
부록에 실습환경 구축이 있다.
실습하기 전에 실습 환경 구축을 하자!
개발자가 마스터에 API로 명령을 내린다.
마스터는 Worker node를 제어하고 모니링한다.
worker node에 Pod가 생성되어 운영된다.
사용자는 Worker node의 Pod에 접속하여 서비스를 받는다.
도커 파일---- 도커 빌드해 이미지로 만든다------ 도커 푸시로 이미지를 레지스트리에 넣는다.
쿠버 네티스는 레지스트리에 있는 이미지를 가져와 서비스를 한다.
개발자가 kubectl create -f 매니페스트 명령어로 쿠버 네티스 클러스터에 Pod를 생성해 서비스되도록 한다.
사용자는 Pod에 접속해 서비스를 받는다.
도커 엔진은 다음과 같은 네임 스페이스를 사용한다.
pid - 리눅스 커널 분리
net - 네트워크 인터페이스 분리
mnt- 파일 시스템 마운트 관리
사용자 --- Worker node -------- kube-proxy ------- Pod (컨테이너) 접속
개발자 kubecli로 --------kube-api server--------------worker node에 kubelet에 명령을 날림--- Pod(컨테이너) 관리함
독자적으로 실행하는 것은 불가능. Pod내에 생성된다.
컨테이너를 실행하기 위한 오브젝트이다. 파드 안에는 한 개 또는 여러 개의 컨테이너가 들어간다.
Pod = 구조가 완두콩을 담고 있는 모양과 비슷하다 = 꼬투리라는 단어 Pod
Pod안에 컨테이너가 있다.
컨트롤하는 것이다. Pod를 컨트롤한다.
파드와 사용자를 연결하는 역할.
요청 트래픽을 지정된 파드들로 분산하며 전송한다.
파드는 일시적인 존재이다. IP도 변경된다. 그래서 Pod에 요청을 보내고 싶을 때 서비스를 사용한다.
Succeeded? 파드 내 컨테이너가 모두 정상적으로 종료됨.
Completed - 파드 내 컨테이너가 정상적으로 종료됨. 파드 내 여러 컨테이너가 있는데 첫 번째 컨테이너가 정상 종료(exit 코드 = 0)이면 Completed로 나온다.
Error - 컨테이버가 이상 종료된 경우.
Failed - Pod 내 최소 하나의 컨터이너가 이상 종료한 경우.
부록에 실습 환경을 구축하는 법에 대해 정리되어 있어 더 좋다.
멀티 노드 K8s로 설치하자.
베이그런트와 엔시블 사용으로 구축해 제대로 된 k8s 구축과 비용이 나오지 않도록 하자.
https://brunch.co.kr/@topasvga/1455