포드

포드 (Pod)

이 페이지는 쿠버네티스에서 배포 가능한 가장 작은 컴퓨팅 단위인 Pod 객체를 설명해요. 하나 이상의 컨테이너와 저장소, 네트워크 설정을 함께 묶는 구조체랍니다.

출처: Kubernetes API Reference

본문

Pod는 클러스터에서 배포 가능한 가장 작고 기본적인 단위입니다. Pod는 하나 이상의 컨테이너와 저장소, 네트워크 설정을 나타냅니다.

apiVersion: v1

import "k8s.io/api/core/v1"

Pod

Pod는 클러스터에서 배포 가능한 가장 작고 기본적인 단위입니다. Pod는 하나 이상의 컨테이너와 저장소, 네트워크 설정을 나타냅니다.


Field Description
apiVersion
string APIVersion은 이 객체 표현의 버전 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않은 값은 거부할 수 있습니다. 자세한 내용: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind
string Kind는 이 객체가 나타내는 REST 리소스를 나타내는 문자열 값입니다. 서버는 클라이언트가 요청을 제출하는 엔드포인트에서 이를 추론할 수 있습니다. 업데이트할 수 없습니다. CamelCase 형식입니다. 자세한 내용: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
ObjectMeta 객체의 표준 메타데이터입니다. 자세한 내용: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec
PodSpec spec는 원하는 포드 동작을 정의합니다. 자세한 내용: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
status
PodStatus status는 포드의 현재 상태를 나타냅니다. 자세한 내용: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

PodSpec

PodSpec는 포드의 원하는 상태를 정의합니다.


Field Description
activeDeadlineSeconds
integer activeDeadlineSeconds는 포드가 노드에서 활성 상태로 실행될 수 있는 기간(초)입니다. 기간이 지나면 포드는 종료됩니다.
affinity
Affinity affinity는 스케줄링에 대한 포드의 선호도/반선호도 규칙을 정의합니다.
automountServiceAccountToken
boolean automountServiceAccountToken은 포드 내의 서비스 어카운트 토큰을 자동으로 마운트할지 여부를 나타냅니다.
containers
Container array containers는 포드 안에서 실행할 컨테이너의 목록입니다. 최소 한 개의 컨테이너가 필요합니다.
dnsConfig
PodDNSConfig dnsConfig는 포드에 대한 DNS 매개변수를 정의합니다.
dnsPolicy
string dnsPolicy는 포드에 대한 DNS 정책을 설정합니다. 유효한 값은 ClusterFirst, Default, ClusterFirstWithHostNet, None입니다.
enableServiceLinks
boolean enableServiceLinks는 포드의 환경 변수에 Service 링크를 주입할지 여부를 나타냅니다.
ephemeralContainers
EphemeralContainer array ephemeralContainers는 포드에서 실행할 임시 컨테이너 목록입니다.
hostAliases
HostAlias array hostAliases는 /etc/hosts에 추가될 호스트 이름과 IP 주소 목록입니다.
hostIPC
boolean hostIPC는 포드가 호스트의 IPC 네임스페이스를 사용할지 여부를 정의합니다.
hostNetwork
boolean hostNetwork는 포드가 호스트의 네트워크 네임스페이스를 사용할지 여부를 정의합니다.
hostPID
boolean hostPID는 포드가 호스트의 프로세스 네임스페이스를 사용할지 여부를 정의합니다.
hostUsers
boolean hostUsers는 포드 안의 컨테이너가 사용자 네임스페이스를 사용할지 여부를 정의합니다.
hostname
string hostname는 포드의 호스트 이름입니다.
imagePullSecrets
LocalObjectReference array imagePullSecrets는 컨테이너 이미지를 가져올 때 사용할 시크릿 목록입니다.
initContainers
Container array initContainers는 포드에서 먼저 실행되는 초기화 컨테이너 목록입니다.
nodeName
string nodeName는 이 포드가 예약된 노드의 이름입니다.
nodeSelector
map[string]string nodeSelector는 이 포드가 스케줄링될 노드를 선택하기 위한 라벨 셀렉터입니다.
os
PodOS os는 포드의 운영 체제를 지정합니다.
overhead
object overhead는 이 포드와 연결된 오버헤드 리소스의 양을 나타냅니다.
preemptionPolicy
string preemptionPolicy는 포드를 선점할 때의 정책을 정의합니다. 유효한 값은 PreemptLowerPriority, Never입니다.
priority
integer priority는 포드의 우선순위 값을 나타냅니다. 값이 클수록 우선순위가 높습니다.
priorityClassName
string priorityClassName은 이 포드에 사용할 우선순위 클래스의 이름입니다.
readinessGates
PodReadinessGate array readinessGates는 포드 준비 상태를 결정하는 추가 조건 목록입니다.
resourceClaims
PodResourceClaim array resourceClaims는 이 포드에서 사용할 리소스 클레임 목록입니다.
restartPolicy
string restartPolicy는 포드의 컨테이너에 대한 재시작 정책입니다. 유효한 값은 Always, OnFailure, Never입니다. 기본값은 Always입니다.
runtimeClassName
string runtimeClassName은 이 포드에 사용할 런타임 클래스의 이름입니다.
schedulerName
string schedulerName는 이 포드를 스케줄링할 스케줄러의 이름입니다.
schedulingGates
PodSchedulingGate array schedulingGates는 포드를 스케줄링 가능한 상태로 만들기 전에 차단할 게이트 목록입니다.
securityContext
PodSecurityContext securityContext는 포드 수준의 보안 속성을 정의합니다.
serviceAccount
string serviceAccount는 이 포드에서 사용할 서비스 어카운트의 이름입니다.
serviceAccountName
string serviceAccountName은 이 포드에서 사용할 서비스 어카운트의 이름입니다.
setHostnameAsFQDN
boolean setHostnameAsFQDN는 포드의 호스트 이름을 FQDN으로 설정할지 여부를 나타냅니다.
shareProcessNamespace
boolean shareProcessNamespace는 포드 안의 컨테이너가 단일 프로세스 네임스페이스를 공유할지 여부를 나타냅니다.
subdomain
string subdomain는 이 포드에 대한 하위 도메인입니다.
terminationGracePeriodSeconds
integer terminationGracePeriodSeconds는 포드가 종료될 때의 유예 기간(초)입니다.
tolerations
Toleration array tolerations는 포드의 테인트 톨러레이션 목록입니다.
topologySpreadConstraints
TopologySpreadConstraint array topologySpreadConstraints는 포드를 여러 토폴로지 도메인에 분산시키는 제약 조건 목록입니다.
volumes
Volume array volumes는 포드에서 사용할 수 있는 볼륨 목록입니다.

Container

Container는 포드 내 단일 컨테이너의 사양입니다.


Field Description
args
string array args는 컨테이너 인수 목록입니다. 비어 있으면 이미지의 기본 인수가 사용됩니다.
command
string array command는 컨테이너의 진입점(entrypoint)입니다. 비어 있으면 이미지의 ENTRYPOINT가 사용됩니다.
env
EnvVar array env는 컨테이너의 환경 변수 목록입니다.
envFrom
EnvFromSource array envFrom는 컨테이너에서 환경 변수를 가져올 원본 목록입니다.
image
string image는 컨테이너의 이미지 이름입니다.
imagePullPolicy
string imagePullPolicy는 이미지를 가져오는 방법을 나타냅니다. 유효한 값은 Always, Never, IfNotPresent입니다.
lifecycle
Lifecycle lifecycle은 컨테이너의 라이프사이클 훅(PostStart, PreStop)을 정의합니다.
livenessProbe
Probe livenessProbe는 컨테이너를 재시작해야 하는지 여부를 결정하는 프로브입니다.
name *****
string name는 컨테이너의 이름입니다. 포드 내에서 고유해야 합니다.
ports
ContainerPort array ports는 컨테이너에서 노출되는 포트 목록입니다.
readinessProbe
Probe readinessProbe는 컨테이너가 트래픽을 받을 준비가 되었는지 여부를 결정하는 프로브입니다.
resizePolicy
ContainerResizePolicy array resizePolicy는 컨테이너 리소스 리사이징 정책 목록입니다.
resources
ResourceRequirements resources는 컨테이너의 리소스 요청 및 제한을 정의합니다.
restartPolicy
string restartPolicy는 컨테이너의 재시작 정책을 정의합니다.
securityContext
SecurityContext securityContext는 컨테이너 수준의 보안 속성을 정의합니다.
startupProbe
Probe startupProbe는 컨테이너가 시작되었는지 여부를 결정하는 프로브입니다.
stdin
boolean stdin는 컨테이너에 표준 입력을 연결할지 여부를 나타냅니다.
stdinOnce
boolean stdinOnce는 표준 입력이 열리면 닫힐지 여부를 나타냅니다.
terminationMessagePath
string terminationMessagePath는 컨테이너 종료 메시지를 기록하는 파일의 경로입니다.
terminationMessagePolicy
string terminationMessagePolicy는 종료 메시지를 읽는 방법을 나타냅니다. 유효한 값은 File, FallbackToLogsOnError입니다.
tty
boolean tty는 컨테이너에 TTY를 할당할지 여부를 나타냅니다.
volumeDevices
VolumeDevice array volumeDevices는 컨테이너에 노출되는 볼륨 장치 목록입니다.
volumeMounts
VolumeMount array volumeMounts는 컨테이너에 마운트되는 볼륨 목록입니다.
workingDir
string workingDir은 컨테이너의 작업 디렉터리입니다.

PodStatus

PodStatus는 포드의 현재 상태를 나타냅니다.


Field Description
conditions
PodCondition array conditions는 포드의 현재 상태 조건 목록입니다.
containerStatuses
ContainerStatus array containerStatuses는 포드의 각 컨테이너 상태 목록입니다.
ephemeralContainerStatuses
ContainerStatus array ephemeralContainerStatuses는 포드의 임시 컨테이너 상태 목록입니다.
hostIP
string hostIP는 포드에 할당된 호스트(노드) IP 주소입니다.
hostIPs
HostIP array hostIPs는 포드에 할당된 호스트(노드) IP 주소 목록입니다.
initContainerStatuses
ContainerStatus array initContainerStatuses는 포드의 초기화 컨테이너 상태 목록입니다.
message
string message는 포드가 현재 상태가 된 이유에 대한 사람이 읽을 수 있는 메시지입니다.
nominatedNodeName
string nominatedNodeName는 포드가 다음에 예약될 때 지명된 노드의 이름입니다.
phase
string phase는 포드 수명 주기에서의 현재 단계입니다. 유효한 값은 Pending, Running, Succeeded, Failed, Unknown입니다.
podIP
string podIP는 포드에 할당된 IP 주소입니다.
podIPs
PodIP array podIPs는 포드에 할당된 IP 주소 목록입니다.
qosClass
string qosClass는 포드의 서비스 품질 클래스입니다. 유효한 값은 Guaranteed, Burstable, BestEffort입니다.
reason
string reason는 포드가 현재 상태가 된 이유에 대한 간결한 사람이 읽을 수 있는 메시지입니다.
resize
string resize는 포드에서 요청된 리소스 리사이징의 상태입니다.
resourceClaimStatuses
PodResourceClaimStatus array resourceClaimStatuses는 포드의 리소스 클레임 상태 목록입니다.
startTime
Time startTime는 포드가 성공적으로 시작된 시간입니다.

ContainerStatus

ContainerStatus는 포드의 단일 컨테이너 상태를 나타냅니다.


Field Description
allocatedResources
object allocatedResources는 이 컨테이너에 할당된 리소스 목록입니다.
containerID
string containerID는 컨테이너 런타임의 ID입니다.
image
string image는 컨테이너 이미지 이름입니다.
imageID
string imageID는 컨테이너 이미지의 ID입니다.
lastState
ContainerState lastState는 이 컨테이너의 마지막 상태입니다.
name
string name는 컨테이너의 이름입니다.
ready
boolean ready는 컨테이너가 준비 프로브를 통과했는지 여부를 나타냅니다.
restartCount
integer restartCount는 컨테이너의 재시작 횟수입니다.
started
boolean started는 컨테이너가 시작되었는지 여부를 나타냅니다.
state
ContainerState state는 이 컨테이너의 현재 상태입니다.

더 알아보기 (Learn more)