We couldn't find a match for given <KEYWORD>, please try again.

Kubernetes 포드란?

포드는 Kubernetes에서 가장 작은 실행 단위입니다. 포드는 하나 이상의 애플리케이션을 캡슐화합니다. 포드는 본질적으로 일시적이므로 포드(또는 포드가 실행되는 노드)에 장애가 발생할 경우 Kubernetes는 자동으로 해당 포드의 새로운 복제본을 생성하여 작업을 계속할 수 있습니다. 포드에는 하나 이상의 컨테이너 (예: Docker 컨테이너)가 포함됩니다.

또한 포드는 영구 스토리지 볼륨(클러스터의 모든 포드에서 사용할 수 있는 영구 스토리지) 및 포드 내에서 컨테이너를 실행하는 데 필요한 구성 데이터를 비롯한 환경 종속성을 제공합니다.

Kubernetes 5분 소개

2021년 Kubernetes 현황

포드의 기능은 무엇입니까?

포드는 클러스터에서 실행되는 프로세스를 나타냅니다. 포드를 단일 프로세스로 제한하면 Kubernetes는 클러스터에서 실행되는 각 프로세스의 상태를 보고할 수 있습니다. 포드의 구성 요소는 다음과 같습니다.

  • 고유한 IP 주소(서로 통신 가능)
  • 영구 스토리지 볼륨(필요한 경우)
  • 컨테이너의 실행 방식을 결정하는 구성 정보입니다.

대부분의 포드에는 단일 컨테이너가 포함되지만, 많은 포드에는 원하는 기능을 실행하기 위해 함께 긴밀하게 작동하는 소수의 컨테이너가 있습니다.

포드의 이점은 무엇입니까?

포드에 여러 컨테이너가 포함되어 있으면 컨테이너 간 통신 및 데이터 공유가 간소화됩니다. 포드 내 모든 컨테이너는 동일한 네트워크 네임스페이스를 공유하므로 서로를 찾고 로컬 호스트를 통해 통신할 수 있습니다. 포드는 다른 포드의 IP 주소를 사용하거나 다른 포드에 있는 리소스를 참조하여 서로 통신할 수 있습니다.

포드에는 포드가 시작될 때 실행되는 컨테이너, 예를 들어 애플리케이션 컨테이너를 실행하기 전에 필요한 초기화를 수행하는 컨테이너가 포함될 수 있습니다. 또한 포드는 확장성을 간소화하여 수요의 변화에 따라 자동으로 복제 포드를 생성하고 종료할 수 있습니다.

포드는 어떻게 작동합니까?

포드는 컨트롤러라고 하는 워크로드 리소스에 의해 생성되며 클러스터 내 포드의 배포, 복제 및 상태를 관리합니다. 예를 들어 클러스터의 노드에 장애가 발생하면 컨트롤러는 해당 노드의 포드가 응답하지 않음을 감지하고 다른 노드에 교체 포드를 생성합니다.

가장 일반적인 세 가지 컨트롤러 유형은 다음과 같습니다.

  • 작업 특정 작업을 실행하여 완료하는 임시적인 배치 유형 작업용
  • 배포 웹 서버(HPPT 서버)와 같이 상태 정보를 저장하지 않는 영구적인 애플리케이션용
  • StatefulSet 데이터베이스와 같이 상태 저장 및 영구 애플리케이션용

포드에 여러 컨테이너가 있는 경우 가상 머신이든 물리적 서버든 클러스터의 동일한 서버에 모두 함께 스케줄링됩니다. 포드 내 모든 컨테이너는 리소스와 종속성을 공유하며, 실행 및 종료를 조정할 수 있습니다. 예를 들어, 포드에 애플리케이션 컨테이너가 실행되기 전에 실행되는 ‘이니셔티브’ 컨테이너를 포함하여 이후에 실행되는 애플리케이션에 대한 환경을 설정할 수 있습니다.

포드는 대부분 컨트롤러에 의해 생성되며, 컨트롤러는 장애가 발생한 포드를 교체하고, 필요에 따라 포드를 복제하며, 포드가 완성되었거나 더 이상 필요하지 않은 포드를 클러스터 노드에서 제거하는 등의 포드 수명주기를 자동으로 관리할 수 있습니다.

컨트롤러는 포드 템플릿의 정보를 사용하여 포드를 생성하고, 컨트롤러는 예를 들어 배포에 정의된 수와 일치하는 복제본을 생성하여 실행 중인 포드가 포드 템플릿에 정의된 배포와 일치하도록 합니다.

포드는 서로 어떻게 통신합니까?

포드가 생성되면 고유한 IP 주소가 할당됩니다. 포드 내에 여러 컨테이너가 있는 경우 간단히 로컬 호스트를 사용하여 서로 통신할 수 있습니다. 포드 외부의 통신은 포트를 노출하여 수행됩니다. 클러스터의 포드 간 통신은 Kubernetes가 클러스터-프라이빗 IP 주소를 클러스터의 모든 PID에 할당한다는 이점을 활용하므로, 포드 간 링크를 명시적으로 생성하거나 컨테이너 포트를 호스트 포트에 매핑할 필요가 없습니다. 이러한 방식으로 클러스터의 모든 포드는 NAT 없이도 서로를 ‘인식’할 수 있습니다.

기본 kubectl 명령은 무엇입니까?

Kubectl은 사용자가 포드를 만들고, 배포를 사용하여 실행하고, 실행 중인 포드의 상태를 확인하고, 더 이상 필요하지 않은 포드를 중단할 수 있는 다양한 명령을 제공합니다. JSON(JavaScript Object Notation) 또는 YAML(YAML Ain’t Markup Language) 명령은 암호화 명령에 유효합니다.

일반적으로 사용되는 kubectl 명령은 다음과 같습니다.

가져오기

kubectl get 명령은 하나 이상의 리소스에 대한 표 형식의 정보를 표시합니다. 라벨 선택기를 사용하여 정보를 필터링할 수 있습니다. 기존 네임스페이스에서만 또는 클러스터의 모든 네임스페이스에 대한 정보가 표시될 수 있습니다.
“kubectl api-resources” 명령은 정보를 ‘가져올’ 수 있는 지원되는 모든 리소스 목록을 생성합니다. kubectl get 명령의 일반적인 형식은 다음과 같습니다.

$ kubectl get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...] (TYPE[.VERSION][.GROUP] [NAME | -l label] | TYPE[.VERSION][.GROUP]/NAME ...) [flags]

포드 생성

포드는 create 명령을 사용하여 다음 형식으로 생성됩니다.

$ kubectl create -f FILENAME.

예를 들어, 다음과 같은 명령을 사용합니다.

kubectl create -f ./mypod.yaml will create a new pod from the YAML file “mypod”

포드 삭제

“kubectl delete -f ./mypod.yaml” 명령은 클러스터에서 “mypod” 포드를 삭제합니다. 포드를 삭제하는 것은 안전한 프로세스입니다. 포드는 강제로 종료되기 전에 유예 기간(기본 30초) 동안 실행을 계속합니다. 원하는 경우 grace-period 플래그로 유예 기간 값을 덮어쓸 수 있습니다.

관련 솔루션 및 제품

엔터프라이즈급 Kubernetes 런타임

멀티 클라우드 인프라 전반에서 운영을 간소화하십시오.

Kubernetes와 Docker 비교

컨테이너를 성공적으로 활용하려면 어떤 툴을 선택해야 합니까?

Kubernetes의 Docker 컨테이너

컨테이너Kubernetes가 무엇인지 이해했다면 다음 단계는 이 두 가지가 함께 작동하는 방식을 알아보는 것입니다.