2024/10/30 4

Pull-based 접근 방식이 멀티 테넌트를 지원하는 방법

Pull-based 접근 방식이 멀티 테넌트를 지원하는 방법각 테넌트의 독립적 배포:Pull-based 배포 방식에서는 각 테넌트가 자신의 설정과 리소스를 Git 리포지토리에 선언적으로 정의해 두고, 각 테넌트의 네임스페이스에만 적용할 수 있습니다. 예를 들어, Flux나 ArgoCD 같은 도구를 사용하면, 각 네임스페이스는 자체 Git 리포지토리를 통해서만 업데이트되도록 설정할 수 있습니다.이러한 방식으로 각 테넌트가 독립적으로 배포를 관리하고, 하나의 테넌트가 다른 테넌트의 리소스에 영향을 주지 않게 할 수 있습니다.Git 리포지토리를 통한 명확한 액세스 제어:Pull-based 접근 방식에서는 각 테넌트가 자신에게 할당된 Git 리포지토리만 관리하도록 설정할 수 있습니다. 이를 통해 액세스 제어가 ..

DevOps/GitOps 2024.10.30

GitOps 원칙

0. 개념GitOps 원칙은 애플리케이션과 인프라 배포를 보다 안전하고 일관되게 관리하기 위해 Git 리포지토리를 중심으로 운영을 자동화하는 방법론입니다. GitOps의 주요 원칙을 이해하려면 다음 네 가지 핵심 원칙을 알고 있어야 합니다.1. 선언적 인프라 (Declarative Infrastructure)설명: 인프라와 애플리케이션의 상태를 선언적으로 정의합니다. Kubernetes의 YAML 파일처럼 모든 상태와 구성을 명확하게 기술해두면, 현재 상태와 원하는 상태 간의 차이를 쉽게 관리할 수 있습니다.장점: 선언적 파일을 사용하면 구성 변경의 추적과 버전 관리가 쉬워지며, 상태의 일관성이 높아집니다.2. Git을 단일 진실 소스로 사용 (Git as a Single Source of Truth)설..

DevOps/GitOps 2024.10.30

서비스 메시

서비스 메시란 서비스 메시는 마이크로 아키텍처 환경에서 코드의 변경 없이 서비스 간 통신을 담당하는 레이어이다. 여기서 서비스란 마이크로서비스 아키텍처에서 특정 기능을 제공하는 독립적인 소프트웨어 컴포넌트를 의미한다. 주로 담당하는 기능은 아래와 같다. - Traffic Management (트래픽 관리)- Security (보안)- Observability (모니터링 + 로깅)- Service Discovery (서비스 간 통신) 서비스 메시 구성요소서비스 메시의 구성 요소로 컨트롤 플레인과 데이터 플레인이 있으며 각기 다른 역할과 기능을 갖고 있다. 컨트롤 플레인 (Control Plane): 관리 및 조정: 네트워크, 서비스, 또는 클러스터의 구성, 정책, 및 규칙을 정의하고 관리합니다.메타데이터 ..

DevOps/Kubernetes 2024.10.30

인그레스 컨트롤러

서비스가 파드로 접근하는데 진입 지점을 제공해준다면 인그레스는 네트워크 7계층에서 여러 서비스로 진입하는데 진입지점을 제공해주고 이를 쿠버네티스 클러스터 안에서 구성할 수 있도록 도와준다. 인그레스를 구성하기 위해선 쿠버네티스 클러스터에 Nginx, HAPROXY, traefik 과 같은 솔루션 중 하나를 선택해서 배포해야 한다. 이와 같은 솔루션을 Ingress controller라고 한다. 그리고 설정 규칙을 Ingress resources라고 한다. 쿠버네티스 클러스터는 Ingress controller가 내장되어 있지 않다. 그래서 인그레스 리소스를 생성해서 적용하기 위해선 인그레스 컨트롤러를 구성해야한다. 인그레스 컨트롤러에는 여러 종류가 있다. 이중에서 GCE와 Nginx가 쿠버네티스 프로젝트..

DevOps/Kubernetes 2024.10.30