YAML : YAML Ain't Markup Language
- 데이터 중심으로 표기하겠다는 문서 타입
- 마크업 언어를 사용하는 것보다 이해하기 쉽고 수월하게 작성할 수 있다.
- 설정 값들의 깊이에 따라서 들여쓰기 등을 통해서 계층 구조를 쉽게 파악할 수 있도록 되어 있다.
- 여러 개의 값은 - (마이너스) 로 구분한다.
- Pod를 만들 때 필요한 설정들을 작성
쿠버네티스 오브젝트 생성하고 관리할 때 명령어보다 Yaml 파일 사용을 권장한다.
개발자가 명령어를 외울 필요가 없다.
공백 두 개로 들여쓰기를 표현한다. (Tab 안됨)
들여쓰기 기준으로 계층적 구조를 가진다
# 기호를 주석으로 사용한다
대소문자를 구분한다.
▶ Pod를 생성할 때, 쿠버네티스에서 Yaml 파일의 기본 구조
apiVersion : 사용한 K8S API의 버전 명세(우리가 만들고자 하는 오브젝트의 API 버전 명시)
kind : 생성할 오브젝트(리소스) 타입 명시
metedata : 파일에서 만드는 오브젝트의 정보
Name : 생성할 이름
Labels
App : 사용할 라벨
spec : 생성할 리소스의 구체적인 상세 내용 정의
containers:
- name : 이름
image
ports
- containerPort : 컨테이너가 노출할 포트 지정
procotol : 기본 값은 TCP
▶ Yaml 파일로 Pod 생성하기
kubectl apply -f Yaml파일경로 [옵션]
예시 > kubectl apply -f .\kuweb-pod.yaml
처음 만들 때 : pod/kuweb-pod created
수정하고 다시 apply 할 때 : pod/kuweb-pod configured
라고 출력됨
kubectl describe pod kuweb-pod
해보면 yaml 파일 수정했던 부분이 적용됐던 것들을 확인해가며 볼 수 있다.
기본적으로 먼저 만든 컨테이너가 Default가 되지만 다른 컨테이너한테 작업 시키고 싶으면 -c 옵션을 준다.
▷ kubectl exec kuweb-pod -c alpine-linux -- ifconfig
IP 확인하는데 (컨테이너의 IP를 볼 수 있다. => Pod의 IP와 같다.)
▷ kubectl exec kuweb-pod -it -c alpine-linux -- /bin/ash
[실습] 지금 2개의 컨테이너를 만들어 놓은 상태

kuweb-pod의 IP (나한테는 지금 10.1.0.22인 상태)
다른 컨테이너의 8080포트로 요청을 보내도 응답을 받아올 수 있다. IP를 공유해서 사용한다.
pod는 하나의 애플리케이션으로 컨테이너를 묶어놓은 것인데 Pod의 IP는 10.1.0.17인데
컨테이너는 하나의 IP를 공유해서 사용하기 때문에 각 컨테이너의 IP도 동일하다.
localhost도 10.1.0.17이고 IP 직접 입력해도 되지만, 물리적으로 분리된 각각의 환경을 가지지만 IP를 가지지만 동일한 localhost여도 같은 10.1.0.17이다.
kuweb의 tomcat으로 요청을 보내면 응답해주는걸 alpine-linux에서 받아올 수 있다.
열려있는 포트만 겹치지 않으면 원하는 컨테이너로 요청을 보낼 수 있다.
▶ Pod 삭제
kubectl delete pods Pod명(혹은 파일명) | -l label | --all [옵션]
예시 > kubectl delete -f .\kuweb-pod.yaml
'Programming > Cloud' 카테고리의 다른 글
Day 177. 쿠버네티스(Kubernetes) - Deployment 사용 (0) | 2022.02.16 |
---|---|
DAY 176. 쿠버네티스(Kubenetest) - Replica Set (0) | 2022.02.15 |
DAY 174. 쿠버네티스(Kubernetes) - Pod 사용하기 (0) | 2022.02.12 |
DAY 173. 쿠버네티스(Kubernetes) 설치 (0) | 2022.02.11 |
DAY 172. 쿠버네티스(Kubernetes) (0) | 2022.02.10 |