K8s

애플리케이션 매니페스트 배포 정의하기

elysia365 2024. 8. 22.

매니페스트는 JSON 또는 YAML 포맷으로 작성할 수 있다.

주석을 작성할 수 있는 YAML 포맷이 인기가 있다.

 

pod.yaml, 컨테이너 하나를 실행하는 단일 파드 예시

# 매니페스트 스크립트는 쿠버네티스 API의 버전과
# 정의하려는 리소스의 유형을 밝히며 시작한다.
apiVersion: v1
kind: Pod

# 리소스의 메타데이터에는 필수 요소인 이름과 
# 비필수 요소인 레이블이 있다.
metadata:
	name: hello-kiamol-3
    
# 스펙은 리소스를 정의한다.
# 파드의 경우 실행할 컨테이너(이름, 이미지)를 정의한다.
spec:
	containers:
      - name: web
        image: kiamol/ch02-hello-kiamol

 

kubectl 의 run 명령을 사용할 때보다 작성해야할 내용이 많아졌지만, 애플리케이션 매니페스트의 장점은 선언적 스크립트라는 점이다.

kubectl 로 run 또는 create 명령을 사용하는 방식은 명령형이다. 

명령형은 쿠버네티스에 할 일을 지시하는 방식인 반면에, 선언적 방식은 최종 결과가 어떻게 되어야 하는지 알려주고 그 최종 결과를 만드는 과정은 따지지 않는 방식이다.

 

매니페스트 파일을 작성한 후 애플리케이션을 배포할 때는 kubectl apply 명령을 사용한다.

즉, 파일에 기술된 설정을 클러스터에 적용하라는 의미이다.

 

매니페스트 파일은 로컬 컴퓨터에 있는 파일이나 URL이 가리키는 웹 서버에 저장된 파일 모두 사용할 수 있다.

kubectl apply -f https://raw.githubusercontent.com/sixeyed/kiamol/master/ch02/pod.yaml

댓글