본문 바로가기
Devops/kubernetes

쿠버네티스 pod란 ?파드란? pod생성 및 사용법 -수정중

by 디찌s 2024. 5. 3.
728x90
반응형

 

 

 

 

POD(파드)란?

쿠버네티스는 개별 컨테이너를 직접 처리하지 않는다. 공동 배치된 컨테이너의 개념을 사용합니다. 이 컨테이너 그룹을 파드(Pod)라고 한다.Pod는 항상 동일한 작업자 노드와 동일한 Linux 네임스페이스에서 함께 실행되는 하나 이상의 밀접하게 관련된 컨테이너 그룹입니다. 각 Pod는 자체 IP, 호스트 이름, 프로세스 등이 있는 별도의 논리적 시스템과 같으며 단일 애플리케이션을 실행합니다. 응용 프로그램은 단일 컨테이너에서 실행되는 단일 프로세스일 수도 있고, 각각 자체 컨테이너에서 실행되는 기본 응용 프로그램 프로세스 및 추가 지원 프로세스일 수도 있습니다. Pod의 모든 컨테이너는 동일한 논리 머신에서 실행되는 것처럼 보이지만 다른 Pod의 컨테이너는 동일한 작업자 노드에서 실행되더라도 다른 노드에서 실행되는 것처럼 보입니다.

아래 그림을 보시다시피 각 Pod에는 고유한 IP가 있으며 각각 애플리케이션 프로세스를 실행하는 하나 이상의 컨테이너가 포함되어 있습니다. Pod는 여러 작업자 노드에 분산되어 있습니다.

 

POD NODE 보기 명령어

 

Ready에 의미는 해당 이미지가 다운 받았는지 안받았는지 알려주는것이다.

예를들어 READY 0/1 일경우 아직 이미지를 다운받지 않은상태이고 

위와같은 1/1이면 이미지를 다운 받은상태이므로 준비가 완료가 된상태이다.

 

Pod가 보류 중 상태로 유지되는 경우 Kubernetes가 레지스트리에서 이미지를 가져올 수 없는 것일 수 있습니다. 사용자 고유의 이미지를 사용하는 경우 Docker Hub에서 공용으로 표시되어 있는지 확인합니다. 이미지를 성공적으로 끌어올 수 있는지 확인하려면 다른 컴퓨터에서 docker pull 명령을 사용하여 이미지를 수동으로 끌어오십시오.

 

 

POD 생성원리 백그라운드 확인

kubectl 커맨드를 실행했을 때, 쿠버네티스 API 서버에 REST HTTP 요청을 전송하여 클러스터에 새로운 레플리케이션 컨트롤러 오브젝트를 생성했다. 그런 다음 레플리케이션 컨트롤러는 새로운 파드를 생성했고, 스케줄러에 의해 워커 노드 중 하나에 스케줄링되었다. 해당 노드의 Kubelet은 Pod가 예약된 것을 확인하고 이미지를 로컬에서 사용할 수 없기 때문에 레지스트리에서 지정된 이미지를 가져오도록 Docker에 지시했습니다. 이미지를 다운로드한 후 Docker는 컨테이너를 만들고 실행했습니다.

 

각 Pod는 고유한 IP 주소를 갖지만 이 주소는 클러스터 내부에 있으며 외부에서 액세스할 수 없다. 외부에서 Pod에 액세스할 수 있도록 하려면 Service 개체를 통해 노출합니다. Pod와 같은 일반 서비스(ClusterIP 서비스)를 생성하는 경우 클러스터 내부에서만 액세스할 수 있기 때문에 LoadBalancer 유형의 특수 서비스를 생성합니다. LoadBalancer 타입의 서비스를 생성하면 외부 로드밸런서가 생성되며, 로드밸런서의 공인 IP를 통해 Pod에 접속할 수 있습니다.

 

Pod 생성 방법

kubectl run nginx --image=nginx

 

외부에서 Pod를 액세스할수 있도록 Service 개체 노출

kubectl expose pod kubia --type=LoadBalancer --name kubia-http

 

해당 명령어를 입력하면 pod에 loadBalncer타입에 서비스를 노출시시킨다

 

 

kubectl get services

 

목록에는 두 가지 서비스가 표시됩니다. 지금은 kubernetes 서비스를 무시하고 만든 kubia-http 서비스를 자세히 살펴봅니다. Kubernetes가 실행 중인 클라우드 인프라에서 로드 밸런서를 만드는 데 시간이 걸리기 때문에 아직 외부 IP 주소가 없습니다. 로드 밸런서가 작동하면 서비스의 외부 IP 주소가 표시되어야 합니다. 잠시 기다렸다가 다음 목록과 같이 서비스를 다시 나열해 보겠습니다.

 

 

728x90
반응형

댓글