1. 파드
1) 피드 소개
- 함께 배치된 컨테이너 그룹이며 쿠버네티스의 기본 빌딩 블록
- 일반적으로 파드는 하나의 컨테이너만 포함하지만, 두 개이상의 컨테이너를 포함할 수도있다.
- 핵심사항은 파드가 여러 컨테이너를 가지고 있을 경우에, 모든 컨테이너는 항상 하나의 워커 노드에서 실행되며 여러 워커 노드에 걸쳐 실행되지 않는 것.
2) 여러 프로세스를 실행할 때 한 개의 컨테이너보다 다수의 컨테이너가 더 적합한 이유
- 컨테이너는 프로세스 자체가 하위 프로세스를 생성하지 않는 한 컨테이너당 하나의 프로세스만 실행하도록 설계됨.
- 또한 모든 프로세스는 동일한 표준 출력으로 로그를 남기므로 어떤 프로세스가 어떤 내용을 기록했는지 파악하기 어려울 수 있음
=> 여러 개의 프로세스를 단일 컨테이너로 묶지 않기 때문에, 컨테이너를 함께 묶고 하나의 단위로 관리할 수 있는 상위구조가 필요한데 이게 파드이다.
🔥 3) 동일한 파드 내 컨테이너 격리
- 파드의 모든 컨테이너는 동일한 네트워크 네임스페이스와 UTS 네임스페이스 안에서 실행되기 때문에, 모든 컨테이너는 같은 호스트 이름과 네트워크 인터페이스를 공유
=> 같은 IP 주소와 포트 공간을 공유하기 때문에 동일한 포드의 컨테이너에서 실행중인 프로세스는 동일한 포트 번호에 바인딩 되지 않도록 주의해야함.
- 파드의 모든 컨테이너는 동일한 IPC 네임스페이스 아래에서 실행돼 IPC 통해 통신 가능
- but 파일 시스템에 한해서는, 분리되어 있는데 이는 볼륨이라는 개념 통해 공유해야함 (6장)
2. 파드에서 컨테이너의 적절한 구성
1) 파드에서 여러 컨테이너를 사용하는 경우 결정해야 하는 질문
- 컨테이너를 함께 실행해야 하는가 ? 혹은 서로 다른 호스트에서 실행할 수 있는가 ?
- 여러 컨테이너가 모여 하나의 구성 요소를 나타내는가, 혹은 개별적인 구성 요소인가 ?
- 컨테이너가 함께, 혹은 개별적으로 스케일링 돼야 하는가 ?
2) 프론트앤드 애플리케이션 서버와 백엔드 데이터 베이스 구성된 어플리케이션 사례
- 단일 파드로 구성하는 것은 적절한 방법은 아니다.
- 컨테이너를 함께 실행해야 하는가 ? 혹은 서로 다른 호스트에서 실행할 수 있는가 ?
ㄴ 항상 같이 실행되지 않아도 된다.
- 여러 컨테이너가 모여 하나의 구성 요소를 나타내는가, 혹은 개별적인 구성 요소인가 ?
ㄴ 개별적인 구성 요소이다.
- 컨테이너가 함께, 혹은 개별적으로 스케일링 돼야 하는가 ?
ㄴ 개별 컨테이너를 수평 확장할 수 없기 때문에, 전체 파드를 수평 확장해야 하는데, 프론트앤드와 백엔드 데이터베이스는 개별 확장이 적합하다.
3) 파드에서 여러 컨테이너를 사용하는 사례
- 주요 프로세스와 하나 이상의 보완 프로세스로 구성된 경우
- 파드 안에 있는 주 컨테이너는 특정 디렉터리에서 파일을 제공하는 웹 서버
- 추가 컨테이너는 외부 소스에서 주기적으로 콘텐츠를 받아 웹 서버 디렉토리 저장, 로그 로데이터 수집기, 데이터 프로세서, 통신 어댑터 등
여기까지는 책 내용이었고, 조금 더 내용을 알기 위해 유투브 통해 찾은 내용을 적어둔다.
🔗 율곡선생 26강. pod 파드 개념과 특징
https://www.youtube.com/watch?v=z39t2EoWGx0
🔗 devops with sina.
https://www.youtube.com/watch?v=-N763iSrVko
ipc 통신
IPC는 동일한 컴퓨터 상에서 실행 중인 서로 다른 프로세스들이 데이터를 주고받기 위해 사용하는 방법, 파이프, 메시지 큐, 공유 메모리, 세마포어, 소켓 등이 있다고 함.
loopback interface
컴퓨터 네트워킹에서 자신에게 보내는 트래픽을 처리하기 위한 가상 네트워크 인터페이스, 곧바로 시스템 내부로 다시 돌아옵니다. 이 과정에서 운영 체제의 네트워크 스택(Network Stack)을 통과하기 때문에, 실제 네트워크 통신이 발생하는 것처럼 테스트할 수 있음
🔗 techworld with nana.
https://www.youtube.com/watch?v=5cNrTU6o3Fw
'모음 > [쿠버네티스 인 액션]' 카테고리의 다른 글
[쿠버네티스 인 액션] 3장. 파드 : 쿠버네티스에서 컨테이너 실행 - 레이블을 이용한 파드 구성/어노테이션/쿠버네티스 네임스페이스 (0) | 2024.08.30 |
---|---|
[쿠버네티스 인 액션] 3장. 파드 : 쿠버네티스에서 컨테이너 실행 - 기존 배포 yaml 살펴보기 (0) | 2024.08.29 |
[쿠버네티스 인 액션] 2장. 도커와 쿠버네티스 첫걸음 - 쿠버네티스에 첫 애플리케이션 실행 (0) | 2024.08.25 |
[쿠버네티스 인 액션] 2장. 도커와 쿠버네티스 첫걸음 - 쿠버네티스 클러스터 설치 (0) | 2024.08.24 |
[쿠버네티스 인 액션] 2장. 도커와 쿠버네티스 첫걸음 - docker 이미지, node.js 애플리케이션 실행 (0) | 2024.08.22 |