CI/CD 란?CI/CD 파이프라인은 소프트웨어 개발에서 코드 작성 → 빌드 → 테스트 → 배포까지의 과정을 자동화함으로써 개발 속도와 품질을 동시에 끌어올리는 핵심 DevOps 전략입니다.CI는 Continuous Integration(지속적 통합)을, CD는 Continuous Delivery(지속적 제공) 또는Continuous Deployment(지속적 배포)를 의미합니다. Continuous Integration (지속적 통합)CI는 여러 개발자들이 작성한 코드를 지속적으로 통합하고, 자동으로 테스트하는 과정입니다. 주요 목표는 개발자들은 코드를 중앙 저장소(git)에 병합하고, 이 과정에서 오류를 즉시 발견하여 빠르게 수정할 수 있도록 하는 것입니다.주요 단계 Build: 코드 변경사항을 감..
1. ConfigMapConfigMap은 Kubernetes에서 애플리케이션의 설정 데이터를 외부화하여 관리할 수 있게 해주는 리소스입니다. 애플리케이션 코드와 구성을 분리함으로써, 배포 환경에 따라 설정을 유연하게 조정할 수 있습니다.주요 특징환경 변수로 주입: 컨테이너 내부에서 환경 변수로 사용할 수 있습니다.볼륨 마운트: 설정 파일처럼 파일 시스템에 마운트하여 애플리케이션이 참조하도록 구성할 수 있습니다.재사용 가능: 여러 Pod에서 동일한 ConfigMap을 참조할 수 있습니다.이미지 설명첫 번째 이미지는 ConfigMap을 생성하고 Pod에서 이를 환경 변수로 사용하는 예시를 보여줍니다.왼쪽은 ConfigMap 정의이며, special.how과 special.type이라는 키를 포함하고 있습니다..
Kubernetes 네트워크 서비스와 파드 연결 방식Kubernetes에서 서비스(Service)는 파드(Pod)와 외부 혹은 내부 트래픽 사이를 연결해주는 네트워크 추상화입니다. 파드는 유동적인 IP를 가지기 때문에 직접 접근이 어려우며, 서비스는 이를 해결하기 위해 안정적인 접근 지점과 로드밸런싱 기능을 제공합니다.이번 글에서는 Kubernetes에서 지원하는 대표적인 서비스 타입인 ClusterIP, NodePort, LoadBalancer에 대해 이미지와 함께 알아보겠습니다. 1. 서비스(Service)의 역할서비스는 클러스터 내부 또는 외부의 클라이언트가 파드에 안정적으로 접근할 수 있도록 돕는 네트워크 프록시 역할을 합니다. 주요 기능은 다음과 같습니다:단일 접근 지점 제공: 파드 IP가 동적..
Kubernetes에서 Deployment는 컨테이너 기반 애플리케이션을 안정적으로 배포, 관리, 확장하기 위한 핵심 리소스입니다. 복잡한 인프라 환경에서도 서비스의 가용성을 유지하고, 유연한 업데이트 및 롤백을 제공하는 중요한 도구입니다.이번 포스팅에서는 Deployment의 개념과 주요 기능, 그리고 관련 구조 및 동작 흐름을 그림을 통해 알아보겠습니다. 1. Deployment란?Deployment는 Kubernetes 클러스터에 애플리케이션의 원하는 상태를 정의하고, 이를 지속적으로 유지하도록 하는 리소스입니다. 사용자는 파드(Pod)의 수, 컨테이너 이미지, 업데이트 전략 등을 정의하기만 하면, Kubernetes가 실제 상태를 원하는 상태로 자동으로 조정해줍니다. 2. Deployment의 ..
Kubernetes란 무엇인가?Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장, 운영을 자동화하는 오픈소스 플랫폼입니다. 구글이 2014년 오픈소스로 공개했으며, 현재는 Cloud Native Computing Foundation(CNCF)에서 관리하고 있습니다.Kubernetes는 초기 Google의 내부 시스템인 Borg에서 영감을 받아 개발되었으며, 15년 이상의 대규모 서비스 운영 경험과 커뮤니티의 아이디어가 반영되어 있습니다. 이름인 Kubernetes는 '키잡이(helmsman)' 또는 '파일럿'을 의미하는 그리스어에서 유래되었습니다.이 플랫폼은 이식성, 확장성, 자동화, 선언적 구성을 지원하며, 다양한 환경(온프레미스, 클라우드, 하이브리드)에서 유연하게 동작합니다. 1. Ku..