728x90
Kubernetes Pods
- 먼저, 다음과 같은 전제 조건이 이미 설정되어 있다고 가정
- 애플리케이션이 이미 개발되어 Docker 이미지로 빌드되어 Docker Hub와 같은 Docker 저장소에 업로드되어 있어야 함.
- Kubernetes 클러스터가 이미 설정되어 있고 정상적으로 동작하고 있어야 함.
- 이는 단일 노드 설정일 수도 있고, 다중 노드 설정일 수도 있음. 모든 서비스가 실행 중이어야 함.
Pod 의 기본 개념
- Kubernetes의 궁극적인 목표는 애플리케이션을 컨테이너 형태로 클러스터 내의 워커 노드에 배포하는 것
- 그러나 Kubernetes는 컨테이너를 직접 워커 노드에 배포하지 않음.
- 컨테이너는 Pod라는 Kubernetes 객체로 캡슐화됨.
- Pod는 애플리케이션의 단일 인스턴스이며, Kubernetes에서 생성할 수 있는 가장 작은 객체
- 단일 노드 Kubernetes 클러스터에서 하나의 Docker 컨테이너가 Pod로 캡슐화되어 실행되는 단순한 예를 들 수 있음.
애플리케이션 확장
- 애플리케이션을 사용하는 사용자 수가 증가하면 애플리케이션을 확장해야 함.
- 추가 인스턴스를 생성해야 할 경우, 동일한 포드 내에 새로운 컨테이너 인스턴스를 생성하지 않음.
- 새로운 애플리케이션 인스턴스를 가진 새로운 포드를 생성함.
- 두 개의 애플리케이션 인스턴스가 두 개의 별도 포드에서 실행되도록 함.
- 사용자 수가 더 증가하고 현재 노드에 충분한 용량이 없으면,
- 클러스터의 물리적 용량을 확장하기 위해 새로운 노드를 추가하고 추가 포드를 배포할 수 있음.
Pod 와 컨테이너의 관계
- Pod는 보통 애플리케이션을 실행하는 컨테이너와 1:1 관계를 가짐.
- 확장을 위해서는 새로운 Pod를 생성하고, 축소를 위해서는 기존 Pod를 삭제
- 애플리케이션을 확장하기 위해 기존 Pod에 추가 컨테이너를 추가하지 않음.
- 다만, Pod 내에 다수의 컨테이너를 가질 수 있지만, 이는 일반적으로 동일한 종류의 컨테이너가 아님.
- 예를 들어, 웹 애플리케이션을 지원하는 헬퍼 컨테이너가 필요한 경우,
- 이 헬퍼 컨테이너는 동일한 Pod 내에 존재할 수 있음.
Pod 의 다중 컨테이너
- 다중 컨테이너 Pod는 드문 경우임.
- 예를 들어, 헬퍼 컨테이너가 웹 애플리케이션 컨테이너를 지원하는 작업을 수행할 때,
- 이 두 컨테이너는 동일한 Pod 내에 존재함.
- 이 경우, 두 컨테이너는 동일한 네트워크 공간을 공유하며, 로컬 호스트를 통해 직접 통신할 수 있음.
- 또한, 동일한 스토리지 공간도 쉽게 공유할 수 있음.
- Kubernetes는 Pod 내 컨테이너가 동일한 스토리지, 네트워크 네임스페이스, 생성 및 종료 시점을 자동으로 관리해줌.
Docker 컨테이너와의 비교
단순히 Docker 컨테이너로 애플리케이션을 배포한다고 가정해보면
- docker run 명령어를 통해 애플리케이션을 배포하고,
- 부하가 증가하면 동일한 명령어를 여러 번 실행하여 추가 인스턴스를 배포
- 애플리케이션이 더 복잡해지고 헬퍼 컨테이너가 필요해지면,
- 이들 컨테이너 간의 네트워크 연결, 공유 볼륨 등을 수동으로 관리해야 함.
- Kubernetes의 Pod는 이러한 작업을 자동으로 처리해줌.
Pod 배포 방법
- kubectl run 명령어를 사용하여 포드를 배포할 수 있음.
- 예를 들어, kubectl run nginx --image=nginx 명령어는 NGINX Docker 이미지를 사용하여
- 포드를 자동으로 생성하고 NGINX 인스턴스를 배포
- kubectl get pods 명령어를 통해 클러스터 내 포드 목록을 확인할 수 있음.
- 이 명령어는 포드가 생성 중인지, 실행 중인지 등을 확인할 수 있음.
728x90
'자격증 > CKA' 카테고리의 다른 글
[CKA] Udemy 29. ReplicaSet (0) | 2024.06.24 |
---|---|
[CKA] Udemy 22. Pods with YAML (0) | 2024.06.23 |
[CKA] Udemy 20. Kube Proxy (0) | 2024.06.23 |
[CKA] Udemy 19. Kubelet (0) | 2024.06.23 |
[CKA] Udemy 18. kube-scheduler (0) | 2024.06.22 |