본문으로 건너뛰기

kube-apiserver 메트릭스 조회

홈 화면 > 클러스터 프로젝트 선택 > 클러스터 > kube-apiserver 메트릭스 조회

노트

요구 사항

  • 쿠버네티스 클러스터 프로젝트(CP) 읽기 권한이 필요합니다.

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

kube-apiserver는 컨트롤 플레인(Control Plane) 내/외부 요청을 처리하는 컴포넌트입니다. kube-apiserver 메트릭스 조회 메뉴를 통해 kube-apiserver에서 수집되는 지표의 원본 데이터 정합성(Data Consistency)을 확인할 수 있습니다.

기본 화면 안내

kube-apiserver 메트릭스 조회

kube-apiserver 메트릭스 조회 메뉴는 kube-apiserver 대상으로 수집한 모니터링 원본 데이터를 카테고리별로 조회하는 기능을 제공합니다. 최근 5분 동안 수집한 데이터가 1분 간격으로 반영됩니다.

  • 상단 왼쪽 시간 선택자를 통해 과거 특정 시점의 데이터를 조회할 수 있습니다. 과거 데이터 조회 시 원하는 옵션 선택 후 돋보기 아이콘 검색 아이콘을 클릭하세요.

  • 조회할 최대 개수를 설정할 수 있습니다.

  • 메트릭스를 필터링해 원본 데이터를 필요에 따라 가공할 수 있습니다.

  • 상단 오른쪽 다운로드 아이콘을 선택해 원하는 데이터를 CSV 형식의 파일로 다운로드할 수 있습니다.

필터

필터 옵션 활용 시 원하는 을 선택해 조회할 수 있습니다. and 조건을 통해 여러 개의 필터를 적용할 수 있습니다.

  1. 필터 아이콘 필터 입력 창에서 필터 더하기 아이콘 더하기 아이콘 선택 시 다음과 같이 필터 추가하기 창이 나타납니다.

    필터 추가

    • 필터 키조건을 선택하세요.

    • 조건에 맞는 값을 선택하세요.

  2. 필터 설정 후 적용 버튼을 선택해 해당 필터를 적용하세요.

  3. 여러 개의 필터를 추가하려면 필터 입력 창 또는 필터 추가하기 창에서 필터 더하기 아이콘 더하기 아이콘을 선택하세요.

kube-apiserver 모니터링 활성화

와탭 쿠버네티스 에이전트 설치 시 다운로드한 yaml 파일을 다음 안내에 따라 수정해 kube-apiserver 모니터링을 활성화하세요.

  1. whatap-master-agent deployment의 spec 하위에 kube-apiserver 모니터링을 위한 에이전트 컨테이너 spec을 추가하세요.
containers:
- name: whatap-control-plane-helper
image: whatap/kube_mon
imagePullPolicy: Always
ports:
- containerPort: 9496
command: ["/data/agent/master/whatap_control_plane_helper"]
args: ["-collect_control_plane_monitoring_enabled=true"]

다음 예시를 참조하세요.

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:
- name: whatap-control-plane-helper
image: whatap/kube_mon
imagePullPolicy: Always
ports:
- containerPort: 9496
command: ["/data/agent/master/whatap_control_plane_helper"]
args: ["-collect_control_plane_monitoring_enabled=true"]
- name: whatap-master-agent
image: whatap/kube_mon
imagePullPolicy: Always
resources:
requests:
memory: 300Mi
cpu: 100m
limits:
memory: 350Mi
cpu: 200m
ports:
- containerPort: 6600
command: ['/bin/entrypoint.sh']
env:
- name: WHATAP_LICENSE
value: "xxxxxxxx-12345xxxxxx-x00e000000xxx8"
- name: WHATAP_HOST
value: "13.124.11.223/13.209.172.35"
- name: WHATAP_PORT
value: "6600"
- name: WHATP_MEM_LIMIT
valueFrom:
resourceFieldRef:
containerName: whatap-master-agent
resource: limits.memory
volumeMounts:
- name: start-script-volume
mountPath: /bin/entrypoint.sh
readOnly: true
subPath: entrypoint.sh
- mountPath: /whatap_conf
name: whatap-config-volume
volumes:
- name: start-script-volume
configMap:
defaultMode: 0700
name: master-start-script
- name: whatap-config-volume
emptyDir: {}
serviceAccount: whatap
  1. whatap-master-agent deployment의 whatap-master-agent 컨테이너 spec에서 env 설정에 다음 내용을 추가하세요.
env:
- name: collect_control_plane_monitoring_enabled
value: "true"

다음 예시를 참조하세요.

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:
- name: whatap-control-plane-helper
image: whatap/kube_mon
imagePullPolicy: Always
ports:
- containerPort: 9496
command: ["/data/agent/master/whatap_control_plane_helper"]
args: ["-collect_control_plane_monitoring_enabled=true"]
- name: whatap-master-agent
image: whatap/kube_mon
imagePullPolicy: Always
resources:
requests:
memory: 300Mi
cpu: 100m
limits:
memory: 350Mi
cpu: 200m
ports:
- containerPort: 6600
command: ['/bin/entrypoint.sh']
env:
- name: collect_control_plane_monitoring_enabled
value: "true"
- name: WHATAP_LICENSE
value: "xxxxxxxx-12345xxxxxx-x00e000000xxx8"
- name: WHATAP_HOST
value: "13.124.11.223/13.209.172.35"
- name: WHATAP_PORT
value: "6600"
- name: WHATP_MEM_LIMIT
valueFrom:
resourceFieldRef:
containerName: whatap-master-agent
resource: limits.memory
volumeMounts:
- name: start-script-volume
mountPath: /bin/entrypoint.sh
readOnly: true
subPath: entrypoint.sh
- mountPath: /whatap_conf
name: whatap-config-volume
volumes:
- name: start-script-volume
configMap:
defaultMode: 0700
name: master-start-script
- name: whatap-config-volume
emptyDir: {}
serviceAccount: whatap
  1. 컨트롤 플레인 모니터링 성능 지표를 수집하기 위해 whatap ClusterRole에 다음의 권한을 추가하세요.
rules:
- nonResourceURLs: ["/metrics"]
verbs: ["*"]

다음 예시를 참조하세요.

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
name: whatap
namespace: whatap-monitoring
rules:
- apiGroups: ["*"]
resources: ["namespaces", "pods", "pods/log", "configmaps","services", "endpoints","daemonsets","ingresses","deployments","nodes","persistentvolumes","persistentvolumeclaims", "events", "replicasets", "roles", "rolebindings", "clusterroles", "clusterrolebindings", "jobs", "cronjobs", "statefulsets", "serviceaccounts", "configmaps", "storageclasses", "horizontalpodautoscalers" ]
verbs: ["get","list","watch"]
- apiGroups: [""]
resources: ["pods/exec"]
verbs: ["create"]
- apiGroups: [""]
resources: ["configmaps"]
verbs: ["*"]
- nonResourceURLs: ["/metrics"]
verbs: ["*"]
---
노트

kubectl apply 또는 kubectl edit 명령을 통해 kube-apiserver 모니터링을 활성화할 수도 있습니다.

kube-apiserver 메트릭

분류메트릭설명
API GET 요청분당 GET 요청 현황kube-apiserver 의 GET 요청에 대한 분당 요청 수
초당 GET 요청 수 추이kube-apiserver 의 GET 요청에 대한 초당 요청 수 추이
Resource & Subresource 별 분당 GET 요청 수 추이kube-apiserver 에 들어온 GET 요청의 Resource 와 Subresource 별 분당 요청 수 추이
API POST 요청분당 POST 요청 현황kube-apiserver 의 POST 요청에 대한 분당 요청 수
초당 POST 요청 수 추이kube-apiserver 의 POST 요청에 대한 초당 요청 수 추이
Resource & Subresource 별 POST 분당 요청 수 추이kube-apiserver 에 들어온 POST 요청에 대해 Resource 와 Subresource 별로 그룹화 한 분당 요청 수 추이
API 응답 코드별 요청[ 2xx ] 분당 응답 요청 현황kube-apiserver 요청 중 200 이상 300 미만의 응답 코드가 내려진 요청 수에 대한 분당 현황
[ 2xx ] 분당 응답 코드별 요청 수 추이kube-apiserver 요청 중 200 이상 300 미만의 응답 코드가 내려진 요청 수에 대한 응답 코드별 분당 현황
[ 2xx ] 분당 Resource & Subresource 별 요청 수 추이kube-apiserver 요청 중 200 이상 300 미만의 응답 코드가 내려진 요청에 대해 Resource 와 Subresource 별로 그룹화 한 분당 요청 수 추이
[ 3xx ] 분당 응답 요청 현황kube-apiserver 요청 중 300 이상 400 미만의 응답 코드가 내려진 요청 수에 대한 분당 현황
[ 3xx ] 분당 응답 코드별 요청 수 추이kube-apiserver 요청 중 300 이상 400 미만의 응답 코드가 내려진 요청 수에 대한 응답 코드별 분당 현황
[ 3xx ] 분당 Resource & Subresource 별 요청 수 추이kube-apiserver 요청 중 300 이상 400 미만의 응답 코드가 내려진 요청에 대해 Resource 와 Subresource 별로 그룹화 한 분당 요청 수 추이
[ 400~ ] 분당 응답 요청 현황kube-apiserver 요청 중 400 이상의 응답 코드가 내려진 요청 수에 대한 분당 현황
[ 400~ ] 분당 응답 코드별 요청 수 추이kube-apiserver 요청 중 400 이상의 응답 코드가 내려진 요청 수에 대한 응답 코드별 분당 현황
[ 400~ ] 분당 Resource & Subresource 별 요청 수 추이kube-apiserver 요청 중 400 이상의 응답 코드가 내려진 요청에 대해 Resource 와 Subresource 별로 그룹화 한 분당 요청 수 추이
Go Metrics고루틴 수현재 존재하는 고루틴 수
스레드 수현재 존재하는 OS 스레드 수
현재 실행 중인 요청 수 (1초)최근 1초 내 실행 중인 요청 수데이터 수집 시 kube-apiserver 에서 1초 내에 진행되고 있던 요청 수