서비스 시는 애플리케이션들과 그들 사이의 인터랙션을 구성하는 마이크로서비스들의 네트워크를 기술하기 위해 사용되는 개념입니다.
서비스 시를 관리하기 위한 시장 표준 기술이 Istio입니다. 칵테일은 Istio의 설치와 모니터링을 지원합니다.
서비스 간 연결 구성을 가시화하여 제공합니다.
네트워크 트래픽 모니터링 정보를 제공합니다.
칵테일 클라우드의 애드온 기능을 통해 손쉽게 Istio의 설치가 가능합니다.
Istio의 모니터링 화면이 칵테일 클라우드의 웹 UI와 통합되어 제공됩니다.
서비스 메시 설치
서비스 메시 조회
서비스 메시를 이용하기 위해서는 플랫폼 관리자가 특정 클러스터에 애드온 기능을 통해 Istio를 배포해야 합니다.
플랫폼 관리 화면에서 좌측 클러스터 메뉴를 선택합니다.
클러스터 목록에서 Istio 설치를 원하는 클러스터 이름을 클릭하면, 해당 클러스터에 대한 개요 조회 화면이 표시됩니다. 이때 상단의 "애드온" 메뉴를 클릭하면, 해당 클러스터에 설치된 애드온의 목록이 표시됩니다.
Istio를 설치하기 위해서는 애드온 목록 조회 화면의 우측 상단 "배포" 버튼을 클릭합니다. 이미 클러스터에 설치된 애드온과 설치가능한 애드온 목록이 표시됩니다.
Istio 카드의 "배포" 버튼을 클릭합니다. Istio 애드온에 대한 설명과 배포 시 설정 가능한 Parameter에 대한 설명이 표시됩니다.
Istio 애드온 정보 조회 화면의 상단 우측 "설정" 버튼을 클릭하면, Istio 배포를 위한 설정 정보 입력 화면이 나타납니다. 설정 정보를 입력한 후 "배포" 버튼을 클릭합니다.
클러스터에 istio가 설치되고 나면 해당 클러스터에 속한 서비스 맵 화면을 접근했을 때, 상단에 "서비스 메시" 메뉴가 노출됩니다.
특정 서비스 맵에 대해서 "서비스 메시" 메뉴를 접근합니다. 화면 중앙에 서비스와 워크로드 사이의 연결 관계 및 요청/응답 관련 정보가 표시됩니다. 화면 우측에는 화면 중앙에서 선택한 연결 관계 상의 트래픽 관련 정보가 표시됩니다.
화면 상단 Graph 오른쪽 물음표 버튼을 클릭하면 그래프 조회 방법을 안내받을 수 있습니다.
조회하고자 하는 그래프 유형을 선택합니다.
제공되는 그래프 유형은 다음과 같습니다.
App Graph: 서비스와 워크로드 사이의 연결 관계를 표시합니다. 이 때, 워크로드의 모든 버전을 하나의 그래프 노드로 표시합니다.
Service Graph: 서비스 사이의 연결 관계를 표시합니다.
Versioned App Graph: 서비스와 워크로드 사이의 연결 관계를 표시합니다. 이때, 워크로드의 버전이 여러 개 존재할 때, 워크로드의 개별 버전과의 연결 관계까지 표시합니다. 또한, 동일한 워크로드의 여러 버전을 하나의 박스 안에 포함시켜 표시합니다.
Workload Graph: 서비스와 워크로드 사이의 연결 관계를 표시합니다. 이때, 워크로드의 버전이 여러 개 존재할 때, 워크로드의 개별 버전과의 연결 관계까지 표시합니다. Versioned App Graph와는 달리, 동일한 워크로드의 여러 버전을 하나의 박스 안에 포함시켜 표시하지는 않습니다.
그래프 상에서 노드를 연결하는 Edge 상에서 표시되는 정보를 설정할 수 있습니다. 또한, 그래프 상에서 표시되는 요소들을 설정할 수 있습니다.
"서비스 메시" 메뉴에 접근 시 기본적으로 "대시보드" 메뉴에 접근하게 되며 위의 2. 서비스 메시 조회 에서 설명한대로 서비스와 워크로드 사이의 연결 관계 및 요청 / 응답 관련 정보등을 확인할 수 있었습니다.
"서비스 메시" 메뉴에는 "리소스" 라는 서브메뉴가 존재하는데 해당 메뉴에서 Istio의 Traffic을 관리할 수 있는 기능을 제공합니다.
"서비스 메시" - "리소스" 메뉴에서는 서비스 메시의 주요 기능중 Traffic Management 관련 설정이 가능합니다.
Traffic Management를 구성하는 Object는 Kubernetes의 Custom Resource Definition (CRD)를 이용하여 정의할 수 있습니다.
"리소스" 메뉴에서는 이러한 CRD를 생성 / 편집할 수 있도록 기능을 제공하여 Istio의 Traffic Management 설정이 가능하도록 합니다.
"리소스" 메뉴에서 "생성" 버튼을 클릭한 후 각각의 리소스 유형에 맞는 설정을 할 수 있습니다.
리소스의 구성은 YAML 편집기를 이용하여 생성 / 편집이 가능하며, 이미 생성되어 있는 구성 정보에 대한 삭제 기능도 제공됩니다.