본문 바로가기

분류 전체보기114

[OTEL] OpenTelemetry의 Java Agent에서 FRAME_SIZE_ERROR 발생 문제 발생  쿠버네티스 클러스터에 OTel 오퍼레이터를 설치하고, Collector와 Java  Agent를 구축하는 과정에서 발생한 에러이다.   https://opentelemetry.io/docs/kubernetes/operator/automatic/ Injecting Auto-instrumentationAn implementation of auto-instrumentation using the OpenTelemetry Operator.opentelemetry.io    위 OpenTelemetry 레퍼런스를 참고하여 진행했었고, Operator를 설치 후 CRD를 활용하여 Collector를 설치하였다.   이후 Spring Boot 애플리케이션에 Annotation을 이용해서 Java Agent.. 2024. 11. 25.
[Kubernetes] 한 노드에 동일한 파드 스케줄링 제한 개요 쿠버네티스 클러스터 환경에서 운영을 할 때에는, 생각하지 못한 다양한 상황을 많이 접할 수 있다.  그중 하나는 Deployments의 파드가 재 스케줄될 때, 상황에 따라 하나의 노드에 같은 파드가 두 개 이상 스케줄될 수 있다는 것이다.  이것이 문제가 되는 이유는 Deployments의 Replicas가 2인 경우 하나의 노드에 이 파드가 2개가 생성된다면, 단일 장애 지점(SPOF)이 되어버린다는 것이다.  가용성을 위하여 파드를 2개로 설정을 했음에도, 노드에 장애가 발생하면 가용성을 보장받지 못하는 상황이 되어버린다는 것이다.  물론 쿠버네티스에는, 이를 방지하기 위한 설정이 존재한다. 이제 해당 옵션을 알아볼 것이다.  아래는 replicas가 2인 nginx라는 deployment의 .. 2024. 11. 24.
[OTEL] OpenTelemetry란 OpenTelemetry  OpenTelemetry는 줄여서 OTel이라고도 많이 사용되며, OpenTracing과 OpenCensus라는 두 개의 프로젝트가 합쳐져서 탄생한 프로젝트이다.  다양한 모니터링 시스템과 함께 통합되어 사용되는 오픈소스 중 하나이며 Trace, Metric 및 Log를 수집하는 데 사용된다.  현재는 CNCF에서의 Incubating의 단계에 속해있으나, 많은 벤더사의 지원을 받으며, Shopify, eBay나 Github과 같은 대형 조직에서도 사용되고 있다는 것을 볼 수 있다.   Otel을 지원하는 벤더사는 아래 사이트에서 확인할 수 있는데, 굉장히 많은 업체가 나열되어 있는 것을 확인할 수 있다.  https://opentelemetry.io/ecosystem/vend.. 2024. 11. 23.
[Tempo] Tempo란 마이크로 서비스 아키텍처가 많은 기업에서 채택되어 사용되면서, 그에 따라 아키텍처의 복잡도도 함께 증가되었다.  복잡도로 인하여, 에러나 지연이 발생하면, 정확히 어떤 마이크로 서비스에서 문제가 발생하는지 파악하는 것도 어려워졌다.  이러한 문제를 해결하기 위하여 분산 추적의 필요성이 생겼고, 이번 글에서 소개하는 Tempo가 Grafana Labs에서 개발한 분산 추적 솔루션이다.Grafana Tempo  https://grafana.com/oss/tempo/ Grafana Tempo OSS | Distributed tracing backendIntroduction to Grafana Tempo Grafana Tempo is an open source, easy-to-use, and high-scale.. 2024. 11. 22.
[Keycloak] Keycloak이란 Keycloak Keycloak은 RedHat에서 개발한 오픈소스 IAM(Identity and Access Management) 솔루션이다.   현대 애플리케이션에서 필수적인 사용자 인증과 접근 제어를 손쉽게 구현할 수 있게 해주는 도구이며, SSO(Single Sign On) 지원, 다양한 프로토콜 활용(Oauth, OIDC 및 SAML 등) 및 용이한 소셜 로그인 통합과 같은 장점으로 많은 기업에서 채택하여 사용하고 있다.   간단한 예시로는 대시보드 오픈소스(Kibana, Grafana 등)를 사용하면, 사용하는 오픈소스가 늘어나면서 더불어 사용자까지도 늘어나게 된다. 이는 사용자 관리에 있어서 관리자의 부하가 점점 늘어날 수밖에 없다. 그러할 때 Keycloak을 활용하면, 사용자 통합 관리가 .. 2024. 11. 21.
[ArgoCD] App of Apps 패턴 ArgoCD와 관련된 글을 보다 보면 App of Apps 패턴이라는 용어를 심심치 않게 접할 수 있다.    ArgoCD의 Reference에 의하면, 선언적으로 정의된 다수의 애플리케이션으로 구성된 단일 애플리케이션을 가진 패턴을 의미한다.   대규모 마이크로서비스 배포 환경의 복잡성을 효과적으로 관리하기 위해 등장한 것이라고 할 수 있다.   App of Apps 패턴을 활용하면 중앙 집중적 관리를 기반으로 멀티 클러스터의 다양한 환경에서 배포를 손쉽게 할 수 있다는 장점을 가지고 있다. 주요 개념  App of Apps에서는 가장 중요한 개념이 3가지 존재한다.  Root Application: 다른 모든 애플리케이션을 관리하는 최상위 애플리케이션Child Applications: Root App.. 2024. 11. 20.