이 글은 아래 자료를 참고하여 작성되었습니다.
Udemy [Kubernetes For the Absolute Beginners]
1. Kubernetes Definition File
쿠버네티스에서는 pod, replica, deployment, service 등의 객체를 생성하기 위해 YAML 파일을 사용한다. 쿠버네티스 definition file은 항상 4개의 최상위 필드를 포함한다. 이 4개의 필드는 필수 필드로, 구성 파일에 반드시 포함되어야 한다.
- apiVersion
- kind
- metadata
- 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 |