지난 시간에는 kubectl create deployment라는 명령어를 사용해 Nginx Pod를 간단히 만들어보았습니다.
이 방식은 빠르고 편리하지만, 어떤 설정으로 만들었는지 기록이 남지 않고, 나중에 수정하거나 다른 사람과 공유하기 어렵다는 단점이 있습니다.
그래서 실제 현업에서는 거의 모든 쿠버네티스 리소스를
YAML
이라는 텍스트 파일로 작성하여 관리합니다.
이것을
선언적(Declarative) 방식
이라고 부릅니다.
마치 "Nginx Pod 3개를 만들어줘" 라고 명령하는 대신, "Nginx Pod 3개가 있는 상태가 내가 원하는 최종 상태야" 라고 적힌 설계도를 쿠버네티스에 제출하는 것과 같습니다.
이번 시간에는 쿠버네티스의 설계도인 YAML 파일을 직접 작성하는 방법을 배우겠습니다.
4편에서 배운 Deployment와 Service를 YAML 파일로 정의하여 Nginx 웹 서버를 배포하고, 외부에서 접속할 수 있도록 노출시키는 전체 과정을 차근차근 실습해보겠습니다.
을 사용할 수 있습니다.
ConfigMap은 설정 파일을 저장하는 곳이고, Volume은 그렇게 저장된 파일을 Pod 안으로 가져오는 방법입니다.
먼저, /custom 경로로 접속하면 다른 메시지를 보여주는 nginx.conf 파일을 만듭니다.
그리고 kubectl create configmap 명령어로 ConfigMap을 생성하고, Deployment YAML에 volumes와 volumeMounts를 추가하여 Pod에 적용할 수 있습니다.
이 내용은 심화 과정이므로, 쿠버네티스가 설정 파일을 어떻게 다루는지 궁금하신 분들은 공식 문서를 참고하여 직접 도전해보시는 것을 추천합니다.
명령어로 하나씩 리소스를 만드는 대신, nginx-deployment.yaml과 nginx-service.yaml이라는 두 개의 설계도를 작성했습니다.
kubectl apply라는 단 하나의 명령어로 설계도에 적힌 그대로 Nginx Pod 3개를 배포하고, NodePort 타입의 Service를 통해 외부 세상에 서비스를 안전하게 노출시키는 데 성공했습니다.
다음 시간에는 여기서 한 걸음 더 나아가, 트래픽에 따라 Pod의 개수를 자동으로 조절하거나, 애플리케이션을 중단 없이 업데이트하는 등 쿠버네티스의 고급 활용법에 대해 알아보겠습니다.