
Pod

- 애플리케이션의 단일 인스턴스
- 쿠버네티스에서 생성할 수 있는 가장 작은 단위
- 쿠버네티스는 컨테이너를 직접 워커 노드에 배포하지 않고 Pod라는 객체에 캡슐화하여 컨테이너를 배포한다.
- 애플리케이션 사용자가 증가하여 더 많은 인스턴스가 필요할 경우, 이미 생성된 Pod에 새 컨테이너를 추가하는 것이 아니라, 새로운 Pod를 생성하여 확장한다. → 각 인스턴스는 별도의 Pod에서 실행됨을 의미하며, 확장 및 축소는 Pod를 생성하거나 삭제함으로써 이루어진다.
* 그럼 무조건 Pod는 컨테이너와 1:1 관계를 가지느냐?
→ 그건 아니다. 같은 Pod에 컨테이너를 추가하여 멀티 컨테이너 Pod를 구성할 수 있다. 같은 Pod에 존재하는 컨테이너는 같은 네트워크 네임스페이스를 공유하여 서로 'localhost'로 통신할 수 있다.

pod 배포 명령어 - kubectl run
- pod를 생성하고 그 안에 Docker 컨테이너를 배포한다.
(예시)
> kubectl run nginx --image nginx
→ nginx 이미지를 Docker Hub에서 가져와 Pod에 배포하는 명령
생성된 pod 확인 명령어 - kubectl get pods
- pod 생성 직후의 STATUS는 ContainerCreating으로 확인되고, 이후 생성이 완료되었을 때는 Running으로 표시된다.


실습 - minikube 클러스터 생성하기
1. kubectl 설치
Production-Grade Container Orchestration
Kubernetes, also known as K8s, is an open source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery. Kubernetes buil
kubernetes.io

Documentation > Tasks > Install Tools로 들어가 자신에게 맞는 운영체제를 선택하고 명령어를 그대로 복사해서 커맨드에 붙여넣으면 된다.


2. Minikube 실행
Install Tools 페이지에서 Minikube를 설치하는 페이지로 이동한다.

> minikube start
* Windows 10 Home은... Hyper-V 활성화를 할 수 없어서,,, 애를 많이 먹었다... 아래 블로그를 참고하여 Hyper-V를 설치하였다................

> kubectl get nodes
현재 실행 중인 노드를 확인할 수 있다.

3. 노드 배포
> kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
kubectl create deployment: 배포 생성 명령어
kicbase/echo-server:1.0 도커 이미지 애플리케이션을 hello-minikube라는 이름으로 배포(Deployment)를 생성하였다.

> kubectl expose deployment hello-minikube --type=NodePort --port=8080
kubectl expose deployment: 생성된 배포를 서비스로서 노출하는 명령어

4. 서비스 액세스
> minikube service hello-minikube
> kubectl port-forward service/hello-minikube 7080:8080


5. 클러스터 삭제
> minikube delete --all

실습 - nginx pod 생성하기
1. 포드 생성하기
> kubectl run nginx --image=nginx
Docker hub에 있는 nginx를 이용하여 이미지를 생성한다.


kubectl describe pod [pod 이름]을 사용하면 해당 pod에 대한 상세한 정보를 확인할 수 있다.

'쿠버네티스' 카테고리의 다른 글
YAML 파일을 쿠버네티스에 적용하기 - ReplicaSet (0) | 2024.11.12 |
---|---|
YAML 파일을 쿠버네티스에 적용하기 - Pod (0) | 2024.11.11 |
YAML 파일이란? (0) | 2024.11.11 |
쿠버네티스 기본 용어 모음 (0) | 2024.10.31 |
쿠버네티스 개요 - 컨테이너와 오케스트레이션 (0) | 2024.10.31 |