분류 전체보기 (345) 썸네일형 리스트형 Kubernetes Resource Map (Resource 생성자 기준) 아래는 일반적인 애플리케이션이 쿠버네티스로 작동될때 사용하는 쿠버네티스의 전체 구성 요소이다. 일반적인 애플리케이션 매니페스트에는 하나 이상의 Deployment 또는 StatefulSet 객체가 포함돼 있다. 여기에는 컨테이너가 하나 이상 포함된 Pod Template이 있고 각각 Liveness Probe가 있다. ㅁ Kubernetes Network 다른 사용자에게 서비스를 제공하는 Pod는 하나 이상의 Service를 통해 노출된다. Cluster 밖에서 연결할 수 있어야 할 때 서비스는 Load Balancer 또는 NodePort 유형의 서비스로 구성되거나 Ingress Resource를 통해 노출된다. ㅁ Kubernetes Configuration 관리 Pod Template(및 Templ.. Kubernetes Resource Map (Resource 기능 영역별) Kubernetes 전체 Resource Map을 그려보면서 각 영역에 대한 연관관계에 대한 이해를 한눈에 볼 수 있다. 아래는 전체 Resource Map이다. ㅁ 전체 Kubernetes Resource Map 이제부터 Pod중심으로 각 영역별 연관 관계와 각 리소스에 대한 설명이다. ㅁ Pod Generator 역할 항목 설명 Pod Pod는 host에서 실행할 수 있는 container의 모음으로 클라이언트에 의해 성생되고 host에서 스케줄 되는 리소스이다. ReplicaSet 지정된 수의 Pod 복제본이 주어진 시간안에 실행되도록 함 Deployment Pod와 ReplicaSet에 대한 선언적 업데이트가 가능하도록 함 DaemonSet 각 노드 또는 특정 노드에서 포드를 실행하도록 함 Job.. 마이크로서비스 구성을 위한 필수 소프트웨어 마이크로서비스에 필요한 기능을 제공하고 관련된 문제 해결에 도움을 주는 다양한 오픈 소스 도구가 있다. - 스프링부트 - 스프링 클라우드/넷플릭스 OSS - 도커 - 쿠버네티스 - 이스티오(서비스메시) 각 디자인패턴과 디자인패턴을 구현한 오픈 소스 도구를 정리한 표 디자인 패턴 스프링 부트 스프링 클라우드 쿠버네티스 이스티오 서비스 검색 넷플릭스 유레카(Eureka)와 넷플릭스 리본(Ribbon) 쿠버네티스의 kube-proxy와 서비스(Service)리소스 에지 서버 스프링 클라우드와 스프링 시큐리티 OAuth (Spring Security OAuth) 쿠버네티스의 인그레스 컨트롤러 (Ingress Controller) 이스티오의 인그레스 게이트웨이 리액티브 마이크로서비스 스프링 리액터 (Spring .. 모니터링 및 경고 중앙화 모니터링 및 경고 중앙화 패턴은 다음과 같은 문제점, 솔루션, 해결책의 필요 조건이 있다. 문제점 응답시간이나 하드웨어 자원 사용량이 지나치게 높은 경우 문제의 근본원인을 찾는게 매우 어렵다. 마이크로서비스별 하드웨어 자원 사용량을 분석할 수 있어야 한다. 해결책 마이크로서비스 인스턴스가 사용하는 하드웨어 자원 사용량에 대한 메트릭(metric)을 수집하는 새 컴포넌트(모니터 서비스monitor service)를 시스템 환경에 추가한다. 해결책의 필요 조건 - 오토스케일링(auto-scaling)된 서버를 포함해 시스템 환경에서 사용하는 모든 서버의 메트릭을 수집해야 한다. - 서버에서 새로 시작된 마이크로 서비스 인스턴스를 감지해 메트릭을 수집해야 한다. - 수집한 메트릭을 조회 및 분석하기 위한 AP.. 제어 루프 (Control loop) 제어 루프 패턴은 다음과 같은 문제점, 솔루션, 해결책의 필요 조건이 있다. 문제점 다수의 마이크로서비스 인스턴스가 여러 서버에 분산돼 있는 시스템 환경에선 중단되거나 지연된 마이크로서비스 인스턴스를 수동으로 감지하고 대처하는 것이 어렵다. 해결책 시스템 환경의 상태를 관찰하는 새 컴포넌트(제어 루프Control loop))를 시스템 환경에 추가한다. 이 컴포넌트는 운영자가 지정한 상태와 실제 상태를 지속적으로 관찰하며, 두 상태가 다른 경우에는 현재 상태가 지정된 상태와 일치하도록 조치를 취한다. 해결책의 필요 조건 구현참고: 컨테이너를 기반으로 하는 환경에선 쿠버네티스와 같은 컨테이너 오케스트레이터로 이 패턴을 구현한다. 서킷 브레이커 (Circuit Breaker) 서킷 브레이커 패턴은 다음과 같은 문제점, 솔루션, 해결책의 필요 조건이 있다. 문제점 동기 방식으로 상호 통신하는 마이크로 서비스 시스템 환경은 연쇄 장애가 발생할 여지가 있다. 하나의 마이크로서비스가 응답하지 않으면 이 마이크로서비스의 클라이언트 또한 클라이언트의 요청에 응답하지 않게 된다. 이 문제는 시스템 환경 전체에 재귀적으로 전파돼 중요한 부분까지 중단시킬 수 있다. 해결책 대상 서비스에 문제가 있다는 것을 감지해 새 요청을 보내지 않도록 차단하는 서킷 브레이커를 추가한다. 해결책의 필요조건 해결책의 필요조건은 다음과 같다. - 서비스에 문제가 감지되면 시간 초과(timeout)를 무시하고 바로 실패하도록 서킷을 연다. - 반열림 서킷(half-open circuit)이라고도 하는 장애 복구용.. 분산 추적 분산 추적 패턴은 다음과 같은 문제점, 솔루션, 해결책의 필요 조건이 있다. 문제점 시스템 환경에 대한 외부 호출을 처리하는 동안 마이크로서비스 사이에서 흐르는 요청 및 메시지를 추적할 수 있어야 한다. 다음은 장애 시나리오의 예다. - 최종 사용자가 특정 자앵에 대한 해결을 요청했을 때 문제를 일으킨 마이크로서비스를 찾고 근본원인을 찾으려면 어떻게 해야 하는가? - 특정 엔티티와 관련된 문제를 지원하고자 이와 관련된 모든 로그 메시지를 찾고 싶다. 예를 들어, 어떤 주문 번호에 대한 문제가 발생했을 때 해당 주문의 처리에 관여한 모든 마이크로서비스의 로그 메시지를 찾으려면 어떻게 해야 하는가? 다음 다이어그램을 참고한다. 해결책 공조 마이크로서비스 사이의 처리 과정을 추적하려면 관련된 모든 요청 및 메.. 로그 분석 중앙화 로그 분석 중앙화 패턴은 다음과 같은 문제점, 솔루션, 해결책의 필요 조건이 있다. 문제점 보통 애플리케이션을 실행하고 있는 로컬 머신에 애플리케이션 로그 이벤트를 기록하는데, 여러 개의 소규모 서버에 다수의 마이크로서비스 인스턴스를 배포하는 마이크로서비스 아키텍처 기반의 시스템 환경에선 다음과 같은 문제가 있다. - 각 마이크로서비스 인스턴스가 로컬에 로그 파일을 기록하는 상황에서 전체 시스템 환경에서 발생하는 사건을 개괄하려면 어떻게 해야 하는가? - 문제가 발생한 마이크로서비스 인스턴스를 찾아서 로그 파일에 오류 메시지를 쓰게 하려면 어떻게 해야 하는가? - 최종 사용자가 문제를 보고했을 때 이와 관련된 로그 메시지를 찾으려면 어떻게 해야 하는가? 문제의 근본 원인이 되는 마이크로서비스 인스턴스를 .. 이전 1 ··· 24 25 26 27 28 29 30 ··· 44 다음