service mesh 마이크로서비스 아키텍처 개발부터 카나리아 배포까지 전체 워크플로우 모범 사례(중)¶
개요¶
이전 문서에서는 Kubernetes 환경에 DataKit을 배포하고, Istio 환경에 Bookinfo 프로젝트를 배포한 후, reviews 마이크로서비스의 CICD Pipeline을 구성하고 카나리아 배포를 통해 reviews의 세 가지 버전을 출시하는 방법을 소개했습니다. 이번 문서에서는 Kubernetes의 관측 가능성과 Istio의 관측 가능성에 대해 설명합니다.
1 Kubernetes 관측 가능성¶
1.1 Docker 모니터링 대시보드¶
Kubernetes 클러스터에서 Pod는 가장 작은 스케줄링 단위이며, 하나의 Pod는 하나 이상의 컨테이너를 포함할 수 있습니다. Guance에서는 Docker 모니터링 대시보드를 사용하여 컨테이너를 관측할 수 있습니다.
'Guance'에 로그인한 후, '시나리오' -> '대시보드 생성'을 클릭하고 Docker 모니터링 대시보드를 선택합니다.
대시보드 이름을 Docker 모니터링 대시보드1로 입력합니다. 이름은 사용자 정의할 수 있으며, '확인'을 클릭합니다.
모니터링 대시보드에 진입하여 호스트 이름과 컨테이너 이름을 선택합니다.
1.2 Kubernetes 모니터링 대시보드¶
'Guance'에 로그인한 후, '시나리오' -> '대시보드 생성'을 클릭하고 Kubernetes 모니터링 대시보드를 선택합니다.
대시보드 이름을 Kubernetes 모니터링 대시보드로 입력합니다. 이름은 사용자 정의할 수 있으며, '확인'을 클릭합니다.
모니터링 대시보드에 진입하여 클러스터 이름과 네임스페이스를 선택합니다.
'참고' 클러스터 이름 드롭다운 상자는 이전 문서에서 DataKit을 배포할 때 설정한 것입니다.
1.3 ETCD 모니터링 대시보드¶
1.3.1 ETCD 수집기 활성화¶
Kubernetes 클러스터에서 수집기를 활성화하려면 ConfigMap을 사용하여 구성을 정의한 다음 DataKit의 해당 디렉터리에 마운트해야 합니다. etcd.conf 내용은 다음과 같습니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: datakit-conf
namespace: datakit
data:
#### etcd
etcd.conf: |-
[[inputs.prom]]
## Exporter 주소 또는 파일 경로 (Exporter 주소에는 http 또는 https 프로토콜을 포함해야 함)
## 파일 경로는 운영 체제에 따라 다름
## Windows 예시: C:\\Users
## UNIX 계열 예시: /usr/local/
urls = ["https://172.16.0.229:2379/metrics"]
## 수집기 별칭
source = "etcd"
## 메트릭 유형 필터, 가능한 값: counter, gauge, histogram, summary
# 기본적으로 counter 및 gauge 유형의 메트릭만 수집
# 비어 있으면 필터링하지 않음
metric_types = ["counter", "gauge"]
## 메트릭 이름 필터
# 정규식 지원, 여러 개 구성 가능, 하나만 일치해도 됨
# 비어 있으면 필터링하지 않음
metric_name_filter = ["etcd_server_proposals","etcd_server_leader","etcd_server_has","etcd_network_client"]
## 메저먼트 이름 접두사
# 설정하면 메저먼트 이름에 접두사 추가
measurement_prefix = ""
## 메저먼트 이름
# 기본적으로 메트릭 이름을 밑줄("_")로 분할하고, 첫 번째 필드를 메저먼트 이름으로, 나머지 필드를 현재 메트릭 이름으로 사용
# measurement_name을 설정하면 메트릭 이름을 분할하지 않음
# 최종 메저먼트 이름에는 measurement_prefix 접두사가 추가됨
# measurement_name = "prom"
## 수집 간격 "ns", "us" (또는 "µs"), "ms", "s", "m", "h"
interval = "60s"
## 태그 필터, 여러 개의 태그 구성 가능
# 일치하는 태그는 무시됨
# tags_ignore = ["xxxx"]
## TLS 구성
tls_open = true
#tls_ca = "/etc/kubernetes/pki/etcd/ca.crt"
tls_cert = "/etc/kubernetes/pki/etcd/peer.crt"
tls_key = "/etc/kubernetes/pki/etcd/peer.key"
## 사용자 정의 메저먼트 이름
# 접두사 prefix를 포함하는 메트릭을 하나의 메저먼트로 그룹화 가능
# 사용자 정의 메저먼트 이름 구성이 measurement_name 구성 항목보다 우선
[[inputs.prom.measurements]]
prefix = "etcd_"
name = "etcd"
## 사용자 정의 인증 방식, 현재 Bearer Token만 지원
# [inputs.prom.auth]
# type = "bearer_token"
# token = "xxxxxxxx"
# token_file = "/tmp/token"
## 사용자 정의 태그
'Rancher'에 로그인한 후, 클러스터 탐색 탭에서 'k8s-solution-cluster' 클러스터를 선택하고, '기타 리소스' -> 'Core' -> 'ConfigMaps'로 이동하여 datakit 네임스페이스를 선택합니다. datakit.conf 행에서 '구성 편집'을 클릭하고, '추가'를 클릭한 후 etcd.conf 구성을 추가하고 '저장'을 클릭합니다.
'Rancher'에 로그인한 후, 클러스터 탐색 탭에서 'k8s-solution-cluster' 클러스터를 선택하고, '워크로드' -> 'DaemonSets'로 이동하여 datakit 워크스페이스를 선택합니다. datakit 열에서 오른쪽의 '구성 편집'을 클릭합니다.
스토리지 인터페이스로 이동하여 etcd.conf 마운트 디렉터리 /usr/local/datakit/conf.d/etcd/etcd.conf를 추가하고 '저장'을 클릭합니다.
1.3.2 인증서 파일 마운트¶
https를 사용하여 etcd 메트릭을 수집하려면 Kubernetes 클러스터의 인증서가 필요합니다. 즉, Kubeadmin으로 배포된 클러스터의 /etc/kubernetes/pki/etcd 디렉터리를 DataKit의 /etc/kubernetes/pki/etcd 디렉터리에 마운트해야 합니다.
다음은 Rancher를 사용하여 구성을 완료하는 방법입니다. 'Rancher'에 로그인한 후, 클러스터 탐색 탭에서 'k8s-solution-cluster' 클러스터를 선택하고, '워크로드' -> 'DaemonSets'로 이동하여 datakit 워크스페이스를 선택합니다. datakit 열에서 오른쪽의 YAML 편집을 클릭합니다.
그림과 같은 내용을 추가한 후 '저장'을 클릭합니다.
1.3.3 ETCD 관측 가능성 구현¶
'Guance'에 로그인한 후, '시나리오' -> '대시보드 생성'을 클릭하고 ETCD 모니터링 대시보드를 선택합니다.
대시보드 이름을 ETCD 모니터링 대시보드로 입력합니다. 이름은 사용자 정의할 수 있으며, '확인'을 클릭합니다.
모니터링 대시보드에 진입하여 클러스터 이름을 선택합니다.
더 많은 ETCD 연동 방식을 알아보려면 ETCD 통합 문서를 참조하십시오.
2 Istio 관측 가능성¶
2.1 Istio Mesh 모니터링 대시보드¶
'Guance'에 로그인한 후, '시나리오' -> '대시보드 생성'을 클릭하고 Istio Mesh 모니터링 대시보드를 선택합니다.
대시보드 이름을 Istio Mesh 모니터링 대시보드로 입력합니다. 이름은 사용자 정의할 수 있으며, '확인'을 클릭합니다.
모니터링 대시보드에 진입하여 클러스터 이름을 선택합니다.
2.2 Istio Control Plane 모니터링 대시보드¶
'Guance'에 로그인한 후, '시나리오' -> '대시보드 생성'을 클릭하고 Istio Control Plane 모니터링 대시보드를 선택합니다.
모니터링 대시보드에 진입하여 클러스터 이름을 선택합니다.
2.3 Istio Service 모니터링 대시보드¶
'Guance'에 로그인한 후, '시나리오' -> '대시보드 생성'을 클릭하고 Istio Service 모니터링 대시보드를 선택합니다.
모니터링 대시보드에 진입하여 클러스터 이름을 선택합니다.
2.4 Istio Workload 모니터링 대시보드¶
'Guance'에 로그인한 후, '시나리오' -> '대시보드 생성'을 클릭하고 Istio Workload 모니터링 대시보드를 선택합니다.
모니터링 대시보드에 진입하여 클러스터 이름을 선택합니다.






























