본문으로 바로가기
반응형

1. Service Mesh

Red Hat OpenShift Service Mesh를 사용하면, 다음과 같은 기능을 제공하는 배포된 서비스 네트워크를 쉽게 생성할 수 있습니다.
  • 검색
  • 로드 밸런싱
  • 서비스 간 인증
  • 장애 복구
  • 지표
  • 모니터링

 

 

2. Service Mesh 아키텍처

서비스 메시 구성 요소는 요청을 수정하거나, 리디렉션하거나, 다른 서비스에 새 요청을 생성하여 마이크로 서비스로 들어오고 나가는 트래픽을 캡처합니다.
RedHat 공식 아키텍처

 

서비스 메시는 데이터 플레인과 컨트롤 플레인으로 구성됩니다.

데이터 플레인은 pod에서 애플리케이션 컨테이너와 함께 실행되며 서비스 메시의 마이크로 서비스 간 인바운드 및 아웃바운드 네트워크 통신을 가로채고 제어하는 지능형 프록시 집합입니다.
데이터 플레인은 인바운드(ingress) 및 아웃바운드(egress) 네트워크 트래픽을 가로채는 방식으로 구현되며, Istio 데이터 플레인은 pod의 사이드 애플리케이션 컨테이너와 함께 실행되는 Envoy 컨테이너로 구성됩니다.
Envoy 컨테이너는 pod 내외의 모든 네트워크 통신을 제어하는 프록시 역할을 합니다.
 
  • Envoy 프록시는 서비스 간에 들어오는 수신(ingress) 및 송신(egress) 네트워크 트래픽은 프록시를 통해 이동합니다. 또한 Envoy 프록시는 메시 내에서 서비스 트래픽과 관련된 모든 메트릭을 수집합니다. Envoy 프록시는 서비스와 동일한 Pod에서 실행되는 사이드카로 배포되며, 메시 게이트웨이를 구현하는 데도 사용됩니다.
     
  • 사이드카 프록시는 연결된 워크로드 인스턴스에 대한 인바운드 및 아웃바운드 통신을 관리합니다.
  • 게이트웨이는 들어오거나 나가는 HTTP/TCP 연결을 수신하는 로드 밸런서 장치로 작동하는 프록시입니다. 게이트웨이 구성은 서비스 워크로드와 함께 실행되는 사이드카 Envoy 프록시가 아닌, 메시의 에지에서 실행되는 독립 실행형 Envoy 프록시에 적용됩니다. 게이트웨이를 사용하여 메시에 대한 인바운드 및 아웃바운드 트래픽을 관리하여 메시에 들어오거나 나가려는 트래픽을 지정할 수 있습니다.
     
  • 컨트롤 플레인은 데이터 플레인을 구성하는 프록시를 관리하고 구성합니다. 구성에 대한 권한 있는 소스이며 액세스 제어 및 사용 정책을 관리하고 서비스 메시의 프록시에서 메트릭을 수집합니다.
 
 

3. Service Mesh 설치 관련

Red Hat OpenShift Service Mesh는 Istio 추가 기능도 제품의 일부로 번들로 제공합니다.
  • Kiali - Kiali는 Red Hat OpenShift Service Mesh의 관리 콘솔입니다.
  • 대시보드, 관찰 기능, 강력한 구성 및 유효성 검사 기능을 제공하며, 트래픽 토폴로지를 유추하고 서비스 메시의 구조를 표시하고 메시의 상태를 표시합니다. Kiali는 Jaeger와의 분산 추적을 위한 상세한 메크릭, 강력한 검증, Grafana에 대한 액세스 및 강력한 통합을 제공합니다.
  • Prometheus - Prometheus를 사용하여 서비스의 원격 분석 정보를 저장합니다. Kiali는 Prometheus를 사용하여 메트릭, 상태 및 메시 토폴로지를 가져옵니다. (View 기능만 제공하며, 사용자가 필요시 별도로 구성해서 사용해야함)
  • Jaeger - 분산 추적을 위해 Jaeger를 지원합니다. Jaeger는 여러 서비스 간에 단일 요청과 관련된 추적을 중앙 집중화하고 표시하는 오픈소스 추적 기능 서버입니다. Jaeger를 사용하여 마이크로서비스 기반 분산 시스템을 모니터링하고 문제를 해결할 수 있습니다.
  • Elasticsearch - ElasticSearch는 오픈 소스의 분산된 JSON 기반 검색 및 분석 엔진입니다. Jaeger는 분산 스토리지에 ElasticSearch를 사용하고 데이터 로깅 및 추적을 위한 인덱싱을 사용합니다. (Optional)
  • Grafana - Grafana는 메시 관리자에게 Istio 데이터에 대한 고급 쿼리 및 메트릭 분석 및 대시보드를 제공합니다. 선택적으로 Grafana를 사용하여 서비스 메시 메트릭을 분석할 수 있습니다

 

 

4. Service Mesh 설치 방법

Red Hat OpenShift Service Mesh에는 다음과 같은 네 가지 Operator가 필요합니다.

  • OpenShift Elasticsearch (Optional)
  • Jaeger
  • Kiali
  • Red Hat Openshift Service Mesh

위 순서대로 RHOCP Operator를 설치합니다. Elasticsearch는 선택사항이지만 설치하는 방법이 포함하였습니다.

 

 

5. Operator 설치 (4번 순서순으로 반복하여 설치)

5.1 OpenShift Elasticsearch 설치

Operator -> Operator Hub -> OpenShift Elasticsearch Operator 선택

 

기본 설정으로 설치를 진행합니다.

 

설치된 Operator 메뉴에서 상태가 "Succeeded" 이면 정상적으로 설치가 되었습니다.

 

 

 

5.2 Jaeger 설치

Openshift ElasticSearch 와 마찬가지로 기본설정으로 설치를 진행합니다.

 

 

 

 

 

5.3 kiali 설치

 

 

 

 

5.4 Red Hat Openshift Service Mesh 설치

 

 

 

5.5 Service Mesh 관련 Operator 설치 완료 확인

설치한 4개 Operato의 상태가 모두 "Succeeded" 인지 확인합니다.

 

 

6. Service Mesh 구성

Service Mesh Control Plane 리소스를 생성하여 Service Mesh 구성 요소를 생성합니다.

oc 명령을 통한 CLI 구성도 가능하며, RHOCP Dashboard에서도 구성할 수 있습니다.

본 가이드에서는 RedHat에서 가이드하는 예제를 기반인 istio-system namespace로 구성하지만, 모든 프로젝트에 서비스 메시 배포를 할 수 있습니다.

 

 

6.1 istio-system ns 생성

홈 -> 프로젝트 -> 프로젝트 만들기 -> 이름 : istio-system 생성

 

 

6.2 SMCP (Service Mesh Control Plane) 구성

Operators -> 설치된 Operators -> RedHat Openshift Service Mesh Operator선택 -> Istio Service Mesh Control Plane 메뉴 선택

 

 

SMCP를 기본값으로 생성합니다.

 

 

올바르게 설치되었는지 확인하려면 Istio Service Mesh Control Plane 탭을 다시 선택 한 후, 기본 값으로 생성된 "basic" 메뉴를 선택합니다.

그리고 상단의 "Resources" 메뉴를 선택하여, 리소스를 확인합니다.

아래 화면에 다 표현하진 않았지만, 모든 관련 유형 (Type)들의 상태가 Created 및 Running 상태이면 정상입니다.

 

 

7. SMMR 구성 (Service Mesh Member Roll)

SMMR은 컨트롤 플레인에 속한 프로젝트를 정의하며, 정의된 프로젝트만 컨트롤 플레인의 영향을 받습니다.

특정 컨트롤 플레인 배포의 멤버 롤에 추가할 때까지 프로젝트(namespace)는 서비스 메시에 속하지 않습니다.

본 예제에서는 사용하기 위해 hk-project 라는 namespace를 생성하여 할당합니다.

 

Operators -> 설치된 Operators -> RedHat Openshift Service Mesh Operator선택 -> Istio Service Mesh Member Roll 메뉴 선택

 

 

SMMR 만들기 메뉴를 눌러 members에 hk-project 값으로 수정 후 만들기를 선택합니다. (여러 project 지정 가능합니다.)

 

 

상태 : Condition: Ready 이면 정상적으로 구성된 것입니다.

 

 

8. 각 서비스 대시보드 접속

네트워킹 > 경로 메뉴 선택

Service Mesh 설치를 위해 접속 가능한 Dashboard들을 확인할 수 있습니다.

 

# Kiali

 

 

# Grafana

 

 

# jaeger

728x90