Kubernetes

YAML 문법 알아보기

uuuhhh 2022. 11. 11. 01:30

YAML이란?


💡 YAMLYAML ain’t markup language / yet another markup language

 

  • 데이터 표현 양식의 한 종류
  • 사람이 읽을 수 있고 이해하기 쉬운 프로그래밍 언어
  • JSON의 상위 집합으로 YAML에서 JSON 사용 가능
  • .yml / .yaml 확장자 사용
  • Map(key - value), List 구조
  • 들여 쓰기로 계층 구조 표현

 

 

▪ 들여쓰기 (Indent)


  • 2칸(추천), 4칸 들여 쓰기를 지원한다.

 

  • 2칸 들여쓰기
apiVersion: apps/v1
kind: Deployment
metadata:
	name: nginx-deployment
	labels:
		app: nginx

 

 

  • 4칸 들여쓰기
apiVersion: apps/v1
kind: Deployment
metadata:
	name: nginx-deployment
	labels:
		app: nginx

 

 

▪ 데이터 정의 (Map)


  • Key - Value 쌍으로 데이터를 정의한다. ( Key: Value )
apiVersion: v1
kind: Pod
metadata:
	name: cn-app-pod
	labels:
    		name: cn-app-pod

 

 

▪ 띄어쓰기


  • key와 value 사이에 반드시 띄어쓰기가 필요하다.
# Good :)
# key: value
kind: Pod 

# Error :(
# key:value
kind:Pod

 

 

▪ 배열 정의 (List)


  • 배열은 - 기호를 사용하여 여러 데이터를 표현한다.
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
	namespace: <specific-namespace>
	name: restricted-access-role
rules:
- apiGroups: [""]
	resources: ["pods"]
	verbs: ["get", "list"]
- apiGroups: ["apps"]
	resources: ["deployments", "daemonsets", "statefulsets", "replicasets"]
	verbs: ["get", "list"]
- apiGroups: ["batch"]
	resources: ["jobs"]
	verbs: ["get", "list"]

 

 

 

▪ 논리형 / 숫자


  • 논리형인 참/거짓은 true (=TRUE, True) / false (=FALSE, False) 를 지원한다.
money: TRUE
busy: true

cold: FALSE
hot: false

 

  • 정수 또는 실수를 따옴표 없이 사용하면 숫자로 인식한다.
number: 12

string: "12"

 

 

▪ 긴 문장 표현 / 줄 바꿈 (Newline)


  • | 기호를 사용하여 여러 줄을 표현한다.
    • 마지막 줄 바꿈 포함
    • 개행( \n )과 빈 줄( \n\n )을 모두 인식한다.
long sentence: |
	Hello, my name is chulsu.
	Nice to meet you. How are you?
	 
	Good to see you.

 

  • > 기호를 사용하여 여러 줄을 표현한다.
    • 중간에 들어간 줄 제외
    • 개행( \n ), 빈 줄( \n\n ) 없이 한 문장으로 인식한다. (끝에 공백 포함)
long sentence: >
	Hello, my name is chulsu.
	Nice to meet you. How are you?
	 
	Good to see you.

 

  • - 기호를 >, | 의 끝에 사용하여 여러 줄을 표현한다.
    • 마지막 줄 바꿈 제외
    • 마지막에 개행( \n )을 포함하지 않는다.
long sentence: |-
	Hello, my name is chulsu.
	Nice to meet you. How are you?
	 
	Good to see you.

 

 

 

ref.


YAML 문법