서론SpringBoot 프레임워크로 제작한 API Application을 cluster에 배포하는 일련의 과정을 포스팅하고자 합니다. 본 포스팅은 NCP 서비스를 기반으로 작성되는 점 참고 부탁드립니다. 빌드는 NCP의 SourceBuild, 배포는 SourceDeploy, 파이프라인은 SourcePipeLine을 사용하며 Kubernetes는 NKS로 작성하였습니다. [이전글] [Kubernetes 도입] 개발환경 없는 회사에서 NKS로 개발환경 구성하기 Chapter 1. 개발 환경이 없었다서론우리 회사에는 개발환경이 존재하지 않았습니다. 입사하고 나서 가장 놀랐던 것은 local에서 개발하고, production에 바로 배포하고 오류가 발생하면 롤백하며 프로덕션 서비스를 운영하는 것min-nine...
서론쿠버네티스에는 워크로드를 배포하고 관리하기 위해 다양한 오브젝트가 존재합니다. 그중에서도 일반적인 서비스(웹, API 등)를 배포할 때 주로 쓰이는 Deployment와는 달리 StatefulSet, DaemonSet, Job, CronJob은 각각 특수한 목적을 갖습니다.StatefulSet: 상태ful(상태가 중요한) 애플리케이션을 위해, 안정적인 네트워크 ID 및 스토리지 관리 등을 제공DaemonSet: 모든 노드마다 반드시 실행되어야 하는 워크로드(Pod)Job: 특정 작업을 한 번(또는 정해진 횟수) 실행 후 종료해야 하는 배치성 작업CronJob: 스케줄러 역할을 수행하며, 정해진 시간/주기에 맞춰 Job을 실행이번 포스팅에서는 위 4가지 오브젝트가 각각 어떤 역할을 하고, 어느 상황에서..
서론쿠버네티스에는 pod, namespace, service, deployment, configMap, secret, ingress 등 엄청나게 많은 Object들이 존재합니다. Kubernetes를 사용하려면 꼭 알아야 할 Object들에 대해서 상세히 알아볼 겸 본 포스팅을 작성합니다.본론1. PodPod란?쿠버네티스에서 가장 작은 배포 단위(Unit)입니다.하나 이상의 컨테이너가 모여서 동작하는 논리적인 집합체입니다.일반적으로 하나의 Pod에는 하나의 주 컨테이너가 들어가지만, 사이드카 컨테이너(예: 로그 수집, 프록시 등)를 함께 두는 경우도 많습니다.언제/어떻게 사용하나?실제 애플리케이션을 컨테이너 단위로 배포하고 실행할 때 사용합니다.로그 수집 에이전트나 모니터링 에이전트를 같이 배포해야 하는..
서론우리 회사에는 개발환경이 존재하지 않았습니다. 입사하고 나서 가장 놀랐던 것은 local에서 개발하고, production에 바로 배포하고 오류가 발생하면 롤백하며 프로덕션 서비스를 운영하는 것이였습니다. 맞습니다. 흔히 말하는 stg나 dev 환경의 구성에 적용하여 진행하는 알파테스트 개념이 없었습니다. 때문에 개발환경 구성은 꼭 필요하다고 생각되었고, Kubernetes를 적용해서 개발 환경을 구성하면 추후 production 서비스도 쉽게 k8s로 마이그레이션이 가능할 것이라 생각하였습니다. 그리고 솔직히 k8s를 공부하고 실제로 사용해보고 싶기도 하였습니다. 팀장님께 k8s의 도입의 필요성을 보고를 드린 후, k8s를 사용해서 개발환경 구성을 진행하기로 하였고 본 포스팅에서는 도입과정과 부딪힌..