본문 바로가기
반응형

전체 글73

Karmada 설치 이번 포스팅에서는 karmada를 설치하고 Karmada 기능을 사용해 Pod를 배포하는 실습을 다룬다. 실습 구성은 아래와 같다. 실습 과정은 아래와 같다. 1. EC2 Bastion에서 Karmada Control-Plane을 구성한다. 2. Push 방식을 이용하여 EKS Member1 클러스터를 Control-plane클러스터에 조인시킨다. 3. 조인이 완료되면 Control-Plane 클러스터에서 Propagation Policy를 이용해 Member1,2 클러스터에 Pod를 배포해한다. [Karmada Join Mode] Push 모드 : Control Plane에서 member 클러스터를 Join 시키는 방식 Pull 모드 : Member 클러스터에서 Control Plane에 join 하는.. 2023. 4. 21.
Karmada 란? Kubernetes는 대규모 분산 시스템에서 애플리케이션을 배포, 관리 및 확장하는 데 사용되는 인기 있는 컨테이너 오케스트레이션 툴이다. Kubernetes는 노드 그룹을 클러스터로 조직하고, 컨테이너를 클러스터의 노드에 배포하여 스케일링, 로드 밸런싱, 고가용성, 로깅 및 모니터링을 가능하게 한다. 그러나 많은 Kubernetes 사용자들은 여러 클러스터를 운영하게 되면, 클러스터 간의 통신과 작업 분배, 리소스 할당 및 오케스트레이션을 수동으로 관리해야 하는 어려움에 직면하게 된다. 이를 해결하기 위해 Karmada는 여러 개의 Kubernetes 클러스터를 하나의 큰 클러스터처럼 관리할 수 있게 해 주며, 이를 통해 리소스를 공유하고 작업을 분산시킬 수 있다. Karmada란? Karmada는 C.. 2023. 4. 21.
Linkerd 서킷 브레이킹 (Circuit Breaking) 서킷 브레이킹이란?서킷 브레이킹은 분산 시스템에서 서비스 간의 의존성과 가용성을 보장하기 위한 중요한 패턴 중 하나이다. 일반적으로 분산 시스템에서는 다양한 서비스들이 서로에게 의존하면서 동작한다. 이때, 하나의 서비스의 장애가 전체 시스템에 영향을 미칠 수 있기 때문에 각 서비스의 상태를 모니터링하고, 장애가 발생한 서비스에 대해서는 다른 대체 서비스를 호출하도록 구성하게 된다. 서킷 브레이커는 이러한 대체 서비스 호출을 처리하는 데에 있어, 서비스 간 연결을 관리하는 역할을 담당한다. 서비스 장애 상황 시 호출이 지연 또는 실패할 경우 서킷 브레이커는 장애 서비스를 일정 기간 동안 엔드포인트에서 제거하고 서비스의 상태가 정상으로 회복되기를 기다린다. 이때, 장애 서비스에 대한 호출은 다른 서비스로 라.. 2023. 4. 19.
Linkerd 버전 업그레이드 이번 포스팅에서는 Linkerd 2.12.4 -> 2.13.1로 업그레이드하는 절차를 기록하려 한다. 버전이 올라가면서 Linkerd에서 사용하는 resource의 이름이나 스펙이 바뀌거나 한다면 이에 맞게 Helm values.yaml 파일을 다시 작성해야 할 수도 있고, Linkerd와 EKS 등 버전 호환성 문제를 고려해야 하는 상황이 필요할 수도 있다. 이 모든 내용은 release node를 통해 확인할 수 있기 때문에 먼저 release notes를 꼼꼼히 확인해야 한다. 아래는 공식 홈페이지에서 제공하는 업그레이드 시 주의사항이다. 다행히 2.12 -> 2.13 업그레이드 시 특별한 추가 Step은 없다는 걸 확인할 수 있다. 업그레이드 관련 공식 홈페이지 참조: https://linkerd.. 2023. 4. 19.
Linkerd 트래픽 Retry, Timeout linkerd는 ServiceProfile이라는 CRD를 사용하여 경로별 Retry, Timeout 설정을 할 수 있다.  Retry서비스가 클라이언트의 요청을 받아 처리하는데, 요청이 실패할 경우 다시 보내는 기능이다.가끔 요청이 실패할 경우 다시 보내어 클라이언트 기준 요청 성공률을 높일 수 있다. 하지만 클라이언트가 과도하게 재시도를 수행하면 서비스는 이를 처리하지 못하고 과부하 상태 및 잠재적인 장애 증상을 일으킬 수 있음에 주의해야 한다. Timeout서비스의 요청 처리 시간이 일정 시간 이상 걸릴 경우 해당 요청을 종료하는 기능이다. 클라이언트와 서버와의 통신이 끊어져 있거나 지연되고 있는 상황에서 클라이언트가 무한정 기다리는 것을 방지할 수 있다. 하지만 처리 중인 요청을 종료하여 문제를 일.. 2023. 4. 19.
Locust 란? 개념부터 실습까지 Locust란? Locust는 Python으로 작성된 오픈소스 부하테스트 도구이다. Locust를 사용하면 분산 시스템에서 여러 사용자를 시뮬레이션하여 웹 애플리케이션의 성능을 측정할 수 있다. 또한 매우 사용하기 쉽고 확장성이 뛰어나며, 사용자 시나리오를 코드로 작성할 수 있어 유연성이 높고, 대시보드를 통해 실시간으로 테스트 결과를 모니터링할 수 있어 테스트 중에 성능 이슈를 발견하고 조치할 수 있다. 이번 포스팅에서는 docker-compose를 이용해 구성하고, master 1개 worker 3개로 구성한다. worker는 Locust 테스트를 수행하는 역할을 담당하며, master는 Locust 웹 인터페이스를 제공하고, worker에서 수행한 결과를 수집하여 테스트 결과를 종합하고, 그 결과를.. 2023. 4. 16.
728x90
반응형