openinfradev / decapod-issues

place holder for epic, cross-repo issues, etc.
0 stars 0 forks source link

[Dev] etcd exporter 구성이 가능하다 #13

Closed bluejayA closed 2 years ago

bluejayA commented 3 years ago

Describe the Story

- [ ] A clear and concise description of what this story is.

etcd exporter에서 master의 ip를 기반으로 Service, EP, ServiceMonitor 를 구축한다. (etcd는 prometheus 로 data export해주고 있음) Q. lma-addon에 job으로 구성??

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied. - [ ] This should have information for QA to validate this story.

Additional information (Optional)

zugwan commented 2 years ago

prometheus 설치 및 구성을 위해 사용하는 kube-prometheus-stack Helm 차트는 etcd 모니터링을 위한 서비스 및 엔드포인트 설정을 지원함. https://github.com/prometheus-community/helm-charts/blob/b8d5b174c5d53fdfbee7540164eae6a088995e29/charts/kube-prometheus-stack/values.yaml#L1152

etcd 동작 방식에 따라 설정하는 내용이 달라짐: 1) 로컬 프로세스 혹은 Docker 컨테이너로 동작: kubeEtcd.endpoints 에 노드 아이피를 리스트로 정의, https://github.com/prometheus-community/helm-charts/blob/b8d5b174c5d53fdfbee7540164eae6a088995e29/charts/kube-prometheus-stack/templates/exporters/kube-etcd/endpoints.yaml#L13 2) Static POD로 동작: 서비스 셀렉터를 통해 자동으로 엔드포인트 구성하며 kubeEtcd.endpoints 가 정의되어 있지 않아야 함(기본값: component: etcd), https://github.com/prometheus-community/helm-charts/blob/b8d5b174c5d53fdfbee7540164eae6a088995e29/charts/kube-prometheus-stack/templates/exporters/kube-etcd/service.yaml#L18

cluster-api를 사용하는 TKS는 2번 경우로, etcd가 각 컨트롤 플레인 노드에 static POD로 실행되며 아래와 같이 레이블 설정이 되어 있기 때문에 kubeEtcd.endpoints 정의된 부분을 제거하는 것으로 바로 적용이 가능함.

  labels:
    component: etcd
    tier: control-plane

decapod-base/site 에서 제거할 것인지, TKS site template에서 patch 형태로 kubeEtcd.endpoints 항목을 제거할 것인지 결정 필요함.

bluejayA commented 2 years ago

decapod-base/site 에서 제거할 것인지, TKS site template에서 patch 형태로 kubeEtcd.endpoints 항목을 제거할 것인지 결정 필요함.

cluster-api로 설치되는 환경이면 provider 무관하게 적용되어야 하는건가요? 그렇다면, decapod-base/site에서 해도 되고, 아니면 site template해서 하는게 맞는건가 해서요

zugwan commented 2 years ago

bootstrap provider kubeadm 에서 수행하는 작업이기 때문에 infrastructure provider와는 무관하게 적용될 것입니다. 아직 tacoplay (kubespray: etcd를 로컬 프로세스로 실행)이 남아있어서 그런 것인데, 주석으로 남겨놓도록 하겠습니다.