4. Introduction - Kubernetes with YAML

2024. 6. 24. 01:37·Kubernetes
이 글은 아래 자료를 참고하여 작성되었습니다.

Udemy [Kubernetes For the Absolute Beginners]

 

1. Kubernetes Definition File

쿠버네티스에서는 pod, replica, deployment, service 등의 객체를 생성하기 위해 YAML 파일을 사용한다. 쿠버네티스 definition file은 항상 4개의 최상위 필드를 포함한다. 이 4개의 필드는 필수 필드로, 구성 파일에 반드시 포함되어야 한다.

  1. apiVersion
  2. kind
  3. metadata
  4. spec

 

2. 필드 설명

2-1. apiVersion

API 버전은 객체를 생성하는 데 사용하는 Kubernetes API의 버전. 생성하려는 객체에 따라 올바른 API 버전을 사용해야 한다. 예를 들어, 파드를 생성할 때는 v1을 사용한다.

kind apiVersion
Pod v1
Service v1
ReplicaSet apps/v1
Deployment apps/v1

2-2. kind

종류는 생성하려는 객체의 유형을 나타낸다. Pod, ReplicaSet, Deployment, Service 등이 있다.

2-3. metadata

메타데이터는 객체에 대한 데이터로, 이름(name), 레이블(labels) 등을 포함한다. 메타데이터는 딕셔너리 형태로 작성된다.

  • name: Kubernetes 리소스를 식별하는 고유한 이름. 클러스터 내에서 특정 리소스를 참조하거나 관리할 때 이 이름을 사용한다. 같은 네임스페이스 내에서는 동일한 종류의 리소스가 동일한 이름을 가질 수 없다.
  • labels: 리소스를 식별하고 그룹화하는 데 사용되는 키-값 쌍의 집합. 레이블은 리소스에 대해 부가적인 정보를 제공하며, 주로 여러 리소스를 필터링하거나 선택할 때 사용된다. labels 하위에는 사용자가 원하는 임의의 key를 설정할 수 있다.

2-4. spec

명세는 생성하려는 객체에 대한 정보를 제공한다. 명세는 객체에 따라 달라지는데, 예를 들어 pod을 생성할 때는 컨테이너에 대한 정보를 입력해야 한다.

spec:
  containers:
  - name: my-container
    image: nginx:1.14.2
    ports:
    - containerPort: 80​

 

 

3. VS Code Tips for k8s YAML

3-1. 설치 방법

Preferences > Extentions > YAML extention 설치 (from Red Hat)

3-2. 설정

톱니바퀴 > Extention Settings > YAML:Schemas > Edit in setting.json

{
    ...
    "yaml.schemas": {
        "kubernetes": "*.yaml"
    }
}

 

3-3. 사용

이후 VS code를 재시작하여 설정을 적용하면, k8s YAML 파일을 작성할 때 자동 완성 기능이 작동하여 필드들을 제안하고 유효성 검사를 수행해 준다.

작성된 YAML 파일의 구조를 VS Code의 Outline 기능을 사용해 확인할 수 있다.

 

'Kubernetes' 카테고리의 다른 글

6. Core Concepts - pod  (0) 2024.06.24
5. Introduction - Minikube  (1) 2024.06.24
3. Introduction - YAML  (0) 2024.06.18
2. Kubernetes Overview - orchestration  (0) 2024.06.16
1. Kubernetes Overview - container  (0) 2024.06.16
'Kubernetes' 카테고리의 다른 글
  • 6. Core Concepts - pod
  • 5. Introduction - Minikube
  • 3. Introduction - YAML
  • 2. Kubernetes Overview - orchestration
SerenaDev
SerenaDev
나의 기술블로그 입니다.
  • SerenaDev
    나의 기술블로그
    SerenaDev
    • 분류 전체보기 (33)
      • FastAPI (1)
      • Iceberg (6)
      • Kubernetes (24)
      • ETC (1)
      • 독서 (1)
  • hELLO· Designed By정상우.v4.10.0
SerenaDev
4. Introduction - Kubernetes with YAML
상단으로

티스토리툴바