본문 바로가기
728x90

분류 전체보기65

ArgoCD App of Apps 패턴 App of Apps은 ArgoCD에서 제안하는 ArgoCD Application 관리 방식이다. 여러개의 클러스터를 가지고 있으며 클러스터에 많은 Application을 설치하려는 운영자를 대상으로 소개하는 패턴이다. 개념ArgoCD Application은 Git에 있는 매니페스트를 주기적으로 확인하여 변경사항이 발생한다면 지정된 쿠버네티스 클러스터에 반영한다.Git에 저장된 매니페스트는 쿠버네티스 리소스를 나타내는 yaml 파일이며, 여기에는 Deployment, Service, CronJob 등 클러스터에 지원하는 쿠버네티스 API는 모두 될 수 있다. 마찬가지로 ArgoCD Application도 커스텀 리소스이기 때문에 쿠버네티스 API 중에 하나이다. 이 특성을 잘 이해한다면 ArgoCD Ap.. 2025. 1. 26.
쿠버네티스에서의 고가용성 (High Availability) High Availability고가용성(High Availability) 은 시스템 내의 어떤 구성 요소에 장애가 발생하더라도 실패나 다운타임 없이 시스템을 지속적으로 운영할 수 있는 능력을 의미한다. 보통 고가용성을 99%, 99.9% 와 같은 비율로 표현하는데 99.999%의 매우 높은 가용성을 의미하는 fine-nines availability 라는 가용성 표준이 있으며, 이 가용성을 유지하려면 1년에 약 5분 15초 이하의 다운타임을 유지해야 한다. 고가용성 시스템을 잘 구축하려면 시스템을 잘 설계해야 하며 철저한 테스트를 거쳐야 한다. 시스템의 구성 요소가 서비스 중단 발생 시에도 시스템이 지정된 가용성 표준을 유지할 수 있도록 설계해야 한다. 고가용성은 어떻게 작동하나?시스템을 항상 100%로.. 2025. 1. 26.
istio traffic 관리 (3) [Egress Gateway] 이전 시간에는 ingress gateway를 위주로 알아봤었는데 이번 시간에는 egress gateway를 위주로 알아보자. ingress gateway가 외부에서 mesh에 대한 인바운드 트래픽을 관리하는 것이라면 mesh에서 바깥으로 나가는 트래픽을 관리하기 위해서 사용하는 것이 egress gateway이다. 사용하는 이유mesh에서 바깥으로 나가는 트래픽을 관리하기 위해 egressgateway를 사용하는 이유는 매우 다양하다. 1. ACL 관리특정 기능을 제공하기 위해 외부 서비스의 기능을 사용하는 경우, 외부 서비스에서는 특정 IP만 해당 서버와 요청할 수 있도록 ACL 제한을 두는 경우가 있다. 하지만 모든 쿠버네티스 워커노드에 공인 IP가 있는 것은 아닐 것이다. 워커노드에서 인터넷이 되는.. 2025. 1. 18.
istio traffic 관리 (2) [Gateway] istio에서 mesh에 대한 인바운드/아웃바운드 트래픽을 관리하기 위해 Gateway를 사용하며, 어떤 트래픽이 mesh에 들어오거나 나갈지를 지정할 수 있다. Gateway의 구성은 애플케이션과 함께 실행되는 사이드카의 envoy proxy가 아닌 mesh의 엣지에서 실행되는 독립적인 envoy proxy에 적용된다. 쿠버네티스의 ingress API와 같이 시스템으로 들어오는 트래픽을 관리하는 메커니즘과 다르게, istio gateway를 사용하면 강력하고 유연한 트래픽 라우팅 기능을 사용할 수 있다. istio의 Gateway를 사용하면 노출시킬 포트, TLS 설정 등과 같은 L4~L6 로드밸런싱 속성을 구성할 수 있기 때문이다. 그리고 L7 트래픽 라우팅 룰은 Gateway에 직접 추가하지 않고.. 2025. 1. 13.
istio traffic 관리 (1) [VirtualService & DestinationRule] istio의 트래픽 라우팅 룰은 서비스 간 트래픽과 API 흐름을 쉽게 제어할 수 있게 한다. istio는 서킷 브레이커, 타임아웃, retry와 같은 서비스 레벨 수준의 기능 구성을 간단하게 하고, 비율 기반 트래픽 분할을 활용하여 A/B 테스팅, Canary rollout 등을 쉽게 할 수 있다. 또한, 종속 서비스나 네트워크의 오류에 대해 애플리케이션을 보다 강력하게 만드는 데 도움이 되는 out-of-box failure recovery 기능을 제공한다. istio의 트래픽 관리 모델은 서비스와 함께 배포되는 envoy-proxy에 의존한다. 메쉬에서 주고받은 모든 트래픽은 envoy를 거치기 때문에 서비스를 변경하지 않고도 메쉬간 트래픽을 쉽게 전달하고 제어할 수 있다. istio에서 제공하는 .. 2025. 1. 12.
istio 소개 및 설치 istio는 기존 분산 애플리케이션에 투명하게 레이어링되는 오픈소스 서비스 메쉬이다. istio의 강력한 기능은 서비스를 보호하고 연결하고 모니터링하는 균일하고 효율적인 방법을 제공한다. istio를 사용하면 애플리케이션 코드를 거의 변경하지 않아도 아래 기능들을 사용할 수 있다.mTLS, 강력한 ID 기반 인증 및 권한 부여를 통해 클러스터에서 안전한 서비스간 통신을 제공한다.HTTP, gRPC, WebSocket, TCP 트래픽에 대한 로드밸런싱 기능 제공풍부한 라우팅 규칙, retry, failover, fault injection 을 통한 트래픽 세부 제어접근 제어, 속도 제한, rate limits을 지원하는 플러그형 정책을 구성할 수 있다.클러스터를 오가는 모든 트래픽에 대한 자동 메트릭, 로.. 2025. 1. 12.
Kubernetes HPA (파드 오토스케일링) [2] - 동작 제어 이전 장에서는 HorizontalPodAutoscaler에 대한 기본적인 내용에 대해 알아보았다. HorizontalPodAutoscaler에 대해 처음 들어보았다면 아래 글을 먼저 읽어보는 것이 좋다.  2025.01.05 - [DevOps/Kubernetes] - Kubernetes HPA (파드 오토스케일링) [1] - 기초 Kubernetes HPA (파드 오토스케일링) [1] - 기초HPA (Horizontal Pod Autoscaler)는 Deployment나 StatefulSet 등의 워크로드의 레플리카 갯수를 수요에 맞게 자동으로 스케일링하도록 한다. 수평 스케일링은 레플리카를 늘리고 줄이는 것을 의미한다. 통상beer1.tistory.com   autoscaling/v2 버전의 Horiz.. 2025. 1. 5.
Kubernetes HPA (파드 오토스케일링) [1] - 기초 HPA (Horizontal Pod Autoscaler)는 Deployment나 StatefulSet 등의 워크로드의 레플리카 갯수를 수요에 맞게 자동으로 스케일링하도록 한다. 수평 스케일링은 레플리카를 늘리고 줄이는 것을 의미한다. 통상적으로 레플리카를 늘리는 것을 scale-out, 줄이는 것을 scale-in 이라고 부른다. 수직 스케일링이라는 것도 있는데, 이는 레플리카를 조절하는 것이 아닌 CPU 및 메모리 등 서버의 스펙을 늘리거나 줄이는 것을 의미한다. (이는 scale-up / scale-down 으로 불린다.)HPA 동작 방식쿠버네티스에는 HPA를 지원하기 위해 HorizontalPodAutoscaler API와 이에 대응하는 컨트롤러를 제공한다. HorizontalPodAutoscale.. 2025. 1. 5.
Coraza WAF 소개와 Istio에서 Coraza WAF 적용하기 Coraza WAFCoraza는 엔터프라이즈급 고성능 웹 애플리케이션 방화벽 (WAF) 이다. Go 언어로 작성되었으며 Modsecurity SecLang Rule set을 지원하고 OWASP Core Rule Set v4와 100% 호환한다. ✏️ Coraza를 알아보기 전에..Coraza를 알아보기 전에 WAF와 OWASP에 대해 간단히 알아보면 좋을 것 같다.  WAF(웹 방화벽) 소개WAF (Web Application Firewall)WAF는 웹 애플리케이션으로 들어오는 트래픽을 모니터링 및 필터링하여 악성 요청으로 의심되는 요청들을 차단하고 웹 앱을 보호하고 승인되지 않은 데이터가 앱에서 나beer1.tistory.com  OWASP란?OWASP (Open Web Application Secu.. 2024. 11. 10.
728x90