코알못

[CKA] yaml 및 APIVersion 본문

ETC

[CKA] yaml 및 APIVersion

코린이s 2023. 8. 12. 13:20
728x90

우리는 쿠버네티스에서 클러스터 관리 할때 yaml 파일, 또한 yaml 파일에서 Object 정의시 apiVersion 을 정의한다.

하지만 저자의 경우 왜 이렇게 쓰는지에 대해 알아본적이 없으며 알고 사용하는것과 모르고 사용하는것은 다르기에 간단하게 알아 보도록 하자!

우선 yaml은 사람이 쉽게 읽을 수 있는 데이터 직렬화 양식이다.

아래와 같은 구조를 가지고 있으며

$ vi nginx.yaml
apiVersion: v1
kind: Pod
metadata:
  labels:
    run: my-nginx
  name: my-nginx
spec:
  containers:
  - image: nginx
    name: my-nginx
:wq!

작성하는 방법은 아래와 같다.

구분 내용 상세
들여쓰기 스페이스바 Tab X
문법 Scalar 문법 : 를 기준으로 key, value를 설정
예) key: value
  배열 문법 '-' 문자로 나열 하며 예시는 아래와 같다. 
key:
  - a : 
     name : 
  - b : 
     name : 

 이제 API Version에 대해 알아보자!

쿠버네티스 Object 사용시에는 apiVersion에 대한 정의가 필요하며 Pod 오브젝트를 사용하기 위해 v1 버전을 사용하였다.

$ vi nginx.yaml
apiVersion: v1
kind: Pod
...

API Object 버전의 경우 alpha > beta > stable 버전으로 변경 되며 해당 버전은 Object 마다 다르며 맞게 사용해야하며 계속적으로 버전은 변경 될 수 있으니 확인하여 사용해야 하며 기본 Base 버전은 아래와 같다.

API Object version
Deployment apps/v1
Pod v1
ReplicaSet apps/v1
ReplicationController v1
Service v1
PersistentVolume v1

그럼 우리는 외워서 사용해야 할까? 정답은 아니다!

아래와 같이 explain 이라는 커멘드를 통해 버전을 확인해볼 수 있다.

[node1 ~]$ kubectl explain pod
KIND:       Pod
VERSION:    v1

끝!

728x90
Comments