쿠버네티스 클러스터를 컨트롤하기 위해 kubectl이라는 명령툴을 사용합니다.
kubectl run
복제될 수 있는 특정 이미지를 만들고 실행하며 생성된 컨테이너를 관리하기 위한 배포 또는 작업을 생성합니다.
kubectl run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [--command] -- [COMMAND] [args...]
YAML (선언형 명령 정의서)
쿠버네티스에 요청하려면
1.어떤 오브젝트를 사용할 지 2.상세설정을 YAML파일 형식으로 정의 해야 합니다.
어떤 텍스트에 어떤 에디터를 사용하든 상관없이 해당 형식에 맞기만 하면 됩니다!
이때 YAML이란?
- .yaml 혹은 .yml 확장자를 가진 파일을 기술하는 문법
- 사람이 쉽게 읽을 수 있는 데이터 직렬화 양식
- 출력 가능한 유니코드 문자 집합(UTF-8, UTF-16 등)을 이용
- 데이터를 표현하는 다른 형식(XML, JSON)보다 읽기 쉽게 표현 가능
POD YAML파일의 필수 구성 요소
apiVersion: v1
kind: Pod
metadata:
name:
spec:
정의 | 설명 | 예시 |
version | 오브젝트 버전 | v1, app/v1, networking.k8s.io/v1, ... |
kind | 종류 | Pod, ReplicaSet, Deployment, Service, ... |
metadata | 메타데이터 | name과 label, annotation(주석)으로 구성 |
spec | 상세명세 | 리소스 종류마다 다름 |
1) YAML 기본문법
- 들여쓰기 ( indent )
2칸(추천) 혹은 4칸을 지원
같은 부모를 가질 경우, 자식끼리는 들여쓰기가 일치해야한다.
apiVersion: v1
kind: Pod
metadata:
name: BTC-pod
spec:
containers: # 부모
- name: BTC-container # 자식
image: kubeetm/BTC-image # 자식
- 데이터 정의 ( map )
key : value 형식으로 정의
1) key와 value사이에는 반드시 빈칸이 필요
2) 대부분의 문자열을 따옴표 없이 사용할 수 있지만 :가 들어간 경우는 반드시 따옴표가 필요
apiVersion: v1
kind: Pod # kind(Key) : Pod(Value)
metadata:
name: BTC-pod # name(Key) : BTC-pod(Value)
spec:
containers:
- name: BTC-container # name(Key) : BTC-container(Value)
- 배열 정의 ( array )
배열은 - 로 표시하거나 [ a, b, c ]형식으로 한 라인에 표현 가능
apiVersion: v1
kind: Pod
metadata:
name: pod-1
spec:
containers: # container name 나열
- name: BTC-container
image: kubetm/BTC-image
ports:
- containerPort: 8000 # container port 나열
- name: BTC-container2 # container name 나열
image: kubetm/p8080
ports:
- containerPort: 8080 # container port 나열
- 주석 ( comment)
주석은 # 로 표시
# comment = 전체 라인 주석 처리
apiVersion: v1
kind: Pod
metadata:
name: BTC-pod
spec:
containers:
- name: BTC-container # subicure 부분 주석 처리
image: kubeetm/BTC-image
- 참/거짓 , 숫자 표현
참 : true, yes
거짓 : false , no 지원
BTC : yes
give_up: no
besbin global tech center : True
busan tech center: false
숫자 : " 따옴표 없이 사용하면 숫자로 인식
"123" -> string으로 인식
# number
version: 1.2
# string
version: "1.2"
- 줄바꿈 ( newline)
| : 마지막 줄바꿈 포함
{
"newlines_sample": "number one line\nsecond line\nlast line\n"
}
newlines_sample: |
number one line
second line
last line
|- : 마지막 줄바꿈 제외
{
"newlines_sample": "number one line\n\nsecond line\n\nlast line"
}
newlines_sample: |-
number one line
second line
last line
> : 중간에 들어간 빈줄을 제외
{
"newlines_sample": "number one line\nsecond line\nlast line\n"
}
newlines_sample: >
number one line
second line
last line
참고) YAML 문법 체크 사이트
http://www.yamllint.com/
'CSP (Cloud Service Provider)' 카테고리의 다른 글
카카오 공공 클라우드 소개 (1) | 2022.08.22 |
---|---|
[NHN Cloud] Vaccine 서비스 소개 (0) | 2022.08.16 |
MongoDB (0) | 2022.07.18 |
트리의 개념과 구현 (0) | 2022.07.08 |
Hyperframe 소개 (0) | 2022.05.20 |
댓글