반응형

쿠버네티스의 거의 모든 명령어에서 (아마 전부일 가능할 듯 합니다.) yaml 형식으로 볼 수 있는데, 이를 리다이렉션 기호(>)를 사용해 파일로 만들 수 있습니다. 그 중 생성 및 실행을 한번에 하는 kubectl run을 이용해 알아보도록 하겠습니다.

 

먼저 yaml 형식으로 보는 옵션은 -o yaml 입니다. 이를 명령어에 끼워주면 해당 내용을 볼 수 있습니다.

 

test라는 pod가 생성되고 생성 방법이 yaml 형식으로 출력되는 것을 볼 수 있습니다.

이 yaml 디스크립터에서 사용한 API 버전
  • apiVersion: v1 (API 버전)
쿠버네티스 오브젝트/리소스 유형
  •  kind: Pod (파드 오브젝트를 정의)
파드 메타데이터
  •  metadata (해당 파드의 메타데이터를 정의)
  •  creationTimestamp (파드가 생성된 시간)
  •  labels (해당 파드에 적용된 라벨을 정의)
  •  name (파드의 이름을 나타냅니다.)
  •  namespace (파드가 생성될 네임스페이스를 나타냅니다.)
  •  resourceVersion (해당 오브젝트의 버전을 나타냅니다.)
  •  uid (해당 오브젝트의 고유 식별자를 나타냅니다.)
파드 정의와 내용
  •  spec (파드의 구성을 정의합니다.)
  •  containers (파드에 포함될 컨테이너를 정의합니다.)
  •  image (사용될 이미지를 정의합니다.)
  •  imagePullPolicy (이미지를 가져올 방법을 정의합니다.)
  •  name (컨테이너의 이름을 나타냅니다.)
  •  resources (컨테이너에 할당할 리소스를 정의합니다.)
  •  terminationMessagePath (컨테이너 종료 시 출력할 메시지를 저장할 경로를 나타냅니다.)
  •  terminationMessagePolicy (종료 시 출력할 메시지의 저장 방법을 나타냅니다.)
  •  volumeMounts (컨테이너에 마운트할 볼륨을 정의합니다.)
  •  mountPath (볼륨을 마운트할 경로를 정의합니다.)
  •  readOnly (볼륨을 읽기 전용으로 마운트할지 여부를 정의합니다.)
  •  dnsPolicy (DNS 정책을 나타냅니다.)
  •  enableServiceLinks (서비스 링크 사용 여부를 정의합니다.)
  •  preemptionPolicy (선점 정책을 나타냅니다.)
  •  priority (우선순위를 정의합니다.)
  •  restartPolicy (컨테이너 재시작 정책을 나타냅니다.)
  •  schedulerName (사용할 스케줄러의 이름을 정의합니다.)
  •  securityContext (보안 컨텍스트를 정의합니다.)
  •  serviceAccount (파드에서 사용할 서비스 계정의 이름을 나타냅니다.)
  •  serviceAccountName (파드에서 사용할 서비스 계정의 이름을 나타냅니다.)
  •  terminationGracePeriodSeconds (컨테이너를 종료하기 위해 기다리는 시간을 정의합니다.)
  •  tolerations (허용 정책을 나타냅니다)
  •  effect (정책의 영향을 정의합니다.)
  •  key (정책에서 사용될 키를 나타냅니다.)
  •  operator (정책에서 사용될 연산자를 나타냅니다.)
  •  tolerationSeconds (정책을 허용하는 시간을 정의합니다.)
  •  volumes (파드에서 사용될 볼륨을 정의합니다.)
  •  projected (여러 볼륨 소스를 하나의 볼륨으로 집합하는 프로젝션을 정의합니다.)
  •  defaultMode (볼륨에서 파일 권한을 설정하는 데 사용됩니다.)
  •  sources (프로젝션에서 사용할 볼륨 소스를 정의합니다.)
  •  serviceAccountToken (서비스 계정 토큰을 사용할 수 있도록 합니다.)
  •  expirationSeconds (토큰의 만료 시간을 정의합니다.)
  •  path (토큰을 사용할 경로를 나타냅니다.)
  •  configMap (구성 맵에서 데이터를 사용합니다.)
  •  items (구성 맵에서 사용할 데이터를 정의합니다.)
  •  downwardAPI (다운워드 API를 사용합니다.)
  •  fieldRef (다운워드 API에서 사용할 필드의 참조를 정의합니다.)
  •  apiVersion (API 버전을 나타냅니다.)
  •  fieldPath (필드의 경로를 나타냅니다.)
  •  metadata (메타데이터를 사용합니다.)
  • namespace (네임스페이스를 사용합니다.)
파드와 그 안의 여러 컨테이너의 상세한 상태
  •  status (파드의 상태를 정의합니다.)
  •  phase (파드의 현재 상태를 나타냅니다.)
  •  qosClass (파드의 QoS 클래스를 나타냅니다.)

각 줄마다의 내용을 정리하였고, 이 내용들을 암기하는 것 보다는 어떤 내용이 필요하고 어떤 내용은 필요 없는지 살펴볼 수 있는 눈을 기르는 것이 중요합니다. 이후에 이 구성이 어떻게 사용되는지 어떤 것이 필요한지 포스팅해보도록 하겠습니다. 혹시 궁금한 것이 있다면 댓글을 남겨주세요. 그 내용에 대해 먼저 조사해보도록 하겠습니다. :)

 

반응형