yaml템플릿과 API

zhzkzhffk·2022년 5월 24일
0

따배쿠

목록 보기
4/6

본 포스팅은 따배쿠(따라하면서 배우는 쿠버네티스)을 보고 정리한 내용입니다.


**yaml 템플릿**

  • 사람이 쉽게 읽을 수 있는 데이터 직렬화 양식
  • HTML, XML과 같은 Markup Language
    • 구조화된 데이터를 표현하기 위한 데이터 포맷
    • Python 처럼 들여쓰기로 데이터 계층을 표기
    • 들여쓰기를 할 때 Tab이 아닌 Space Bar를 사용
    • 가독성이 좋아 설정 파일에 적합한 형식
    • Scalar 문법: ':'을 기준으로 key: value를 설정
    • 배열 문법: '-'문자로 여러 개를 나열
    • 공식 사이트: yaml.org

yaml 파일을 읽을 때 TopDown방식으로 읽는 것이 아니라, 통째로 쿠버네티스가 읽어서 k8s가 문법 규격을 체크하고, 필요한 정보가 있는지를 체크

**yaml 실습**

apiVersion: v1
kind: Pod
metadata:
  name: mypod
  namespace: orange
spec:
  containers:
    - image: nginx:1.14
      name: nginx
      ports:
      - containerPort: 80
      - containerPort: 443
  • key: value 하나만 있으면 스칼라 형식 (image: nginx:1.14)
  • ports: values를 갖을 때는 배열 문법을 통해 여러개를 나열

**API Version**

  • alpha -> beta -> stable
  • kubernetes Object 정의 시 apiVersion 필요
  • kubernetes가 update하는 API가 있으면 새로운 API가 생성됨
  • API Object의 종류 및 버전
    • Deployment : apps/v1
    • Pod : v1
    • ReplicaSet : apps/v1
    • ReplicationController : v1
    • Service : v1
    • PersistentVolume : v1

**API Version의 오류 생기면 발생 오류**

apiVersion: apps/v1
kind: Pod
metadata:
  name: mypod
  namespace: orange
spec:
  containers:
    - image: nginx:1.14
      name: nginx
      ports:
      - containerPort: 80
      - containerPort: 443
$ kubectl create -f nginx.yaml
error: unable to recognize "nginx.yaml": no matches for kind "Pod" in version "apps/v1"

**API Version 체크 명령어**

$ kubectl explain pod
KIND:     Pod
VERSION:  v1
profile
Backend Developer

0개의 댓글