https://kubernetes.io/ko/docs/concepts/workloads/pods/pod-overview/
이 글은 제가 공식문서를 보고 혼자 정리하는 글입니다.
파드(Pod)
파드는 쿠버네티스의 기본 실행 단위이다.
단일 컨테이너만 동작하는 파드
하나의 파드안에 하나의 컨테이너가 동작하는 것이다.
다중 컨테이너가 동작하는 파드
공유 볼륨을 이용해서 퍼블릭으로 파일들을 옮긴다.
그리고 같은 파드안에 있는 컨테이너들은 네트워킹과 저장소를 공유한다.
파드를 관리하는 워크로드 리소스
디플로이먼트
스테이트풀셋
데몬셋
각각에 대해선 뒤에서..
파드 템플릿
파드를 생성하기 위한 명세이다.
디플로이먼트, 잡, 데몬셋과 같은 워크로드 리소스에 포함되어 있다.
(그래서 직접 pod yaml을 작성안해도 자동적으로 생성이 되었었다.)
파드 템플릿을 수정한다면
기존에 있는 파드가 바뀐다. (X)
기존에 있는 파드는 그대로 있고, 새로운 파드 템플릿에 맞는 파드가 만들어진다. (O)
디플로이먼트에서는 파드 템플릿이 바뀌면
기존에 있는 파드가 삭제가 되고 새롭게 바뀐 파드들로 바뀐다.
고려된 대안
싱글 컨테이너(도커)에서 다중 프로그램을 실행하지 않는 이유? (궁금했던 것)
1. 소프트웨어 의존성 분리 : 독립적으로 버전 관리, 재빌드, 재배포 될 수 있길래 분리하는 것이 좋다.
2. 사용의 편의성 : 사용자는 자신의 프로세스 매니저를 따로 실행 할 필요가 없고, 종료 코드 전파등에 대해 걱정할 필요가 없다.
3. 효율성 : 인프라측에서 많은 책임을 가지고 있으므로, 컨테이너는 더 가벼워 질 수 있다.
초기화 컨테이너
파드안에서 여러 개의 컨테이너 앱이 구동될 수 있는데
컨테이너 앱들이 구동되기 전에 맨 처음에 구동되도록 하는 특수한 컨테이너를 초기화 컨테이너 라고 한다.
보통 앱 이미지에는 없는 유틸리티, 설정 스크립트 등을 포함할 수 있다.
파드 토폴로지 분배 제약 조건
*토폴로지란?
토폴로지는 컴퓨터 네트워크의 요소들을 물리적으로 연결해 놓은 것, 또는 그 연결 방식을 말한다.
한 마디로 파드 네트워크 물리적 연결 분배 제약 조건 이라고 생각하면 쉽다.
클러스터에 걸쳐 파드가 분산되는 방식을 제어할 수 있다.
고가용성, 효율적인 리소스 활용의 목적을 이루게 해준다.
하나의 클러스터에 네 개의 노드가 있다고 하면 레이블들을 분산해서 관리를 할 수 있다.
NAME STATUS ROLES AGE VERSION LABELS
node1 Ready <none> 4m26s v1.16.0 node=node1,zone=zoneA
node2 Ready <none> 3m58s v1.16.0 node=node2,zone=zoneA
node3 Ready <none> 3m17s v1.16.0 node=node3,zone=zoneB
node4 Ready <none> 2m43s v1.16.0 node=node4,zone=zoneB
위의 노드들은 클러스터에서 다음과 같이 보이게 된다.
+---------------+---------------+
| zoneA | zoneB |
+-------+-------+-------+-------+
| node1 | node2 | node3 | node4 |
+-------+-------+-------+-------+
파드 프리셋
파드 생성 시간에 파드에 특정 정보를 주입하기 위한 오브젝트이다.
ex : 시크릿, 볼륨, 볼륨 마운트, 환경 변수등..
파드에 파드 프리셋이 적용되도록 하려면 레이블 셀렉터를 이용해야 한다.
'Kubernetes & Docker' 카테고리의 다른 글
Mysql Docker Image를 이용해서 React-Node.js-MySQL 애플리케이션 구현해보기 (2) | 2020.07.23 |
---|---|
쿠버네티스 공식문서 파헤치기 : 레플리카셋(ReplicaSet) (0) | 2020.07.16 |
쿠버네티스 공식문서 파헤치기 : 클러스터 아키텍처 (0) | 2020.07.15 |
쿠버네티스 공식문서 파헤치기 : 개요 (0) | 2020.07.15 |
Docker-compose로 여러 개의 서비스 구동하기 (0) | 2020.07.10 |