본문으로 건너뛰기

etcd 대시보드

홈 화면 > 클러스터 프로젝트 선택(CP) > 클러스터 > etcd 대시보드

노트

요구 사항

  • 와탭 쿠버네티스 에이전트 1.7.16 버전 이상이 필요합니다.

  • 쿠버네티스 클러스터 프로젝트(CP)일 경우 해당 메뉴를 조회할 수 있습니다.

etcd는 쿠버네티스 환경에서 클러스터 상태와 관련된 데이터를 저장하는 핵심 컴포넌트입니다. 와탭은 etcd의 성능과 상태를 모니터링할 수 있는 etcd 대시보드를 제공합니다. 이를 통해 클러스터의 안정성을 높이고 문제 발생 시 신속한 대응이 가능합니다.

기본 화면 안내

etcd 대시보드

etcd 대시보드는 최근 1시간 동안 수집된 주요 etcd 지표를 1분 주기로 제공합니다. 대시보드에서 확인할 수 있는 주요 지표는 다음과 같습니다. 지표 상세는 하단 메트릭 안내를 참조하세요.

  • etcd가 사용하는 리소스, Pod 재기동 수, 상세 로그를 제공합니다.

  • etcd 내부의 commit 및 apply 횟수를 제공합니다.

  • etcd 리더의 존재 여부 및 리더의 변경 이력을 제공합니다.

etcd 모니터링 활성화

와탭 쿠버네티스 에이전트 설치 시 다운로드한 YAML 파일 수정 및 mTLS 인증서를 등록하여 에이전트를 활성화하세요.

인증서 확인 및 Secret 생성

etcd 인증서 확인

etcd의 mTLS 인증서가 필요합니다. etcd 인증서는 일반적으로 Control Plane 노드의 /etc/kubernetes/pki/etcd 경로에 저장됩니다. 파일 소유자는 root 계정이며 필요한 인증서는 다음과 같습니다.

  • ca.crt

  • server.crt

  • server.key

kubectl 명령을 실행할 머신에서 다음 명령어를 통해 인증서가 존재하는지 확인하세요.

sudo ls /etc/kubernetes/pki/etcd

Secret 생성

인증서가 존재하면 다음 명령어를 통해 Secret을 생성하세요.

sudo kubectl create secret generic whatap-etcd-cert -n whatap-monitoring --from-file=ca.crt=/etc/kubernetes/pki/etcd/ca.crt --from-file=server.crt=/etc/kubernetes/pki/etcd/server.crt --from-file=server.key=/etc/kubernetes/pki/etcd/server.key

정상적으로 Secret 생성 시 다음과 같은 메시지가 출력됩니다.

secret/whatap-etcd-cert created
root 계정을 사용할 수 없는 경우

root 계정에서 kubectl 명령을 사용할 수 없는 경우 다음 안내를 참조하세요.

  1. 인증서 복제 후 접근 가능한 경로로 이동하세요.

  2. 복제된 인증서 파일의 소유자를 현재 소유자로 변경하세요.

네임스페이스가 없을 경우

쿠버네티스 에이전트 YAML 적용 전에 Secret을 만드는 경우 whatap-monitoring 네임스페이스가 존재하지 않아 Secret 생성에 실패할 수 있습니다. 다음 명령어를 통해 네임스페이스를 생성한 후 다시 Secret을 생성하세요.

kubectl create namespace whatap-monitoring

와탭 쿠버네티스 에이전트 YAML 수정

와탭 쿠버네티스 에이전트 YAML 파일을 수정하여 컨테이너 설정을 추가 후 Secret을 연결하세요.

컨테이너 설정

  1. Deployment의 whatap-control-plane-helper 컨테이너 내 args 섹션에 etcd 관련 설정을 추가하세요.

    -collect_etcd_monitoring_enabled=true
    -etcd_hosts=사용자의_etcd_ip,사용자의_etcd_ip

    다음 예시를 참조하세요.

    Example
    -etcd_hosts=192.168.1.45,192.168.1.46,192.168.1.47
  2. Deployment의 whatap-master-agent 컨테이너의 환경 변수(env)에 다음 내용을 추가하세요.

    - name: "collect_etcd_monitoring_enabled"
    value: "true"

Secret 연결

  1. Deployment의 whatap-master-agent 내 volumes 섹션에 Secret을 추가하세요.

    - name: "whatap-etcd-cert"
    secret:
    secretName: "whatap-etcd-cert"
  2. whatap-control-plane-helper 컨테이너에 해당 Secret을 마운트하세요.

    volumeMounts:
    - name: "whatap-etcd-cert"
    readOnly: true
    mountPath: "/etc/kubernetes/pki/etcd"

전체 YAML 예시

다음은 모든 설정이 적용된 YAML 파일 예시입니다. 하이라이팅된 부분을 참조하세요.

apiVersion: "apps/v1"
kind: "Deployment"
metadata:
name: "whatap-master-agent"
namespace: "whatap-monitoring"
spec:
replicas: 1
selector:
matchLabels:
name: "whatap-master-agent"
template:
metadata:
labels:
name: "whatap-master-agent"
spec:
containers:
- command:
- "/bin/entrypoint.sh"
env:
- name: "WHATAP_LICENSE"
value: "x208gnc8i1kko-z2p19shk7npc4t-z788sgbj3n123a"
- name: "WHATAP_HOST"
value: "59.13.101.109"
- name: "WHATAP_PORT"
value: "61574"
- name: "WHATP_MEM_LIMIT"
valueFrom:
resourceFieldRef:
containerName: "whatap-master-agent"
resource: "limits.memory"
- name: "collect_control_plane_monitoring_enabled"
value: "true"
- name: "collect_etcd_monitoring_enabled"
value: "true"
image: "whatap/kube_mon"
name: "whatap-master-agent"
ports:
- containerPort: 6600
resources:
limits:
cpu: "200m"
memory: "350Mi"
requests:
cpu: "100m"
memory: "300Mi"
volumeMounts:
- mountPath: "/bin/entrypoint.sh"
name: "start-script-volume"
readOnly: true
subPath: "entrypoint.sh"
- mountPath: "/whatap_conf"
name: "whatap-config-volume"
- args:
- "-collect_control_plane_monitoring_enabled=true"
- "-collect_etcd_monitoring_enabled=true"
- "-etcd_hosts=192.168.1.45,192.168.1.46,192.168.1.47"
command:
- "/data/agent/master/whatap_control_plane_helper"
image: "whatap/kube_mon"
imagePullPolicy: "Always"
name: "whatap-control-plane-helper"
ports:
- containerPort: 9496
volumeMounts:
- name: "whatap-etcd-cert"
readOnly: true
mountPath: "/etc/kubernetes/pki/etcd"
serviceAccount: "whatap"
volumes:
- configMap:
defaultMode: 448
name: "master-start-script"
name: "start-script-volume"
- emptyDir: {}
name: "whatap-config-volume"
- name: "whatap-etcd-cert"
secret:
secretName: "whatap-etcd-cert"

etcd 메트릭

구분설명
Pod 수현재 존재하는 etcd 파드의 수
etcd 재기동 수 추이etcd 파드 재기동 횟수 합계 추이
리더 변경 추이etcd 파드 리더 변경 횟수 추이
리더 존재 유/무리더 역할을 하는 etcd 파드의 존재 여부
CPU 사용량 합계etcd 파드 CPU 사용량 합계
CPU 사용량etcd 파드 CPU 사용량 추이
Memory 사용량 합계etcd 파드 메모리 사용량 합계
Memory 사용량etcd 파드 메모리 사용량 추이
Commit 추이etcd 변경 사항 commit 횟수
Apply 추이commit 이후 apply 된 횟수
etcd 로그etcd 파드에서 발생한 로그