- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
쿠버네티스에서 실시간 메트릭을 받아 다음과 같이 활용할 수 있습니다.
쿠버네티스의 경우, Agent를 DaemonSet로 실행하시길 권장합니다. 도커(Docker) 이미지는 활성화된 도커와 쿠버네티스 통합 모두에서 사용할 수 있습니다.
또한, 호스트에서 Datadog Agent를 실행하고 설정하여 쿠버네티스 메트릭을 수집할 수 있습니다.
쿠버네티스 덕분에 Datadog Agent를 모든 노드에 자동 배포하는 DaemonSets의 장점을 활용할 수 있습니다(또는 nodeSelectors를 사용해 특정 노드에만 배포할 수도 있습니다).
쿠버네티스 클러스터에서 DaemonSets 옵션을 지원하지 않는다면 각 쿠버네티스 노드의 배포 콘텐츠로서 Datadog Agent를 설치하세요.
쿠버네티스에서 RBAC를 사용한다면 Datadog-쿠버네티스 통합에서 RBAC 권한을 설정하는 방법을 알아보세요.
dd-agent.yaml
매니페스트(Manifest)를 생성합니다.
apiVersion: extensions/v1beta1
metadata:
name: dd-agent
spec:
template:
metadata:
labels:
app: dd-agent
name: dd-agent
spec:
containers:
- image: gcr.io/datadoghq/docker-dd-agent:latest
imagePullPolicy: Always
name: dd-agent
ports:
- containerPort: 8125
name: dogstatsdport
protocol: UDP
env:
- name: API_KEY
value: "DATADOG_API_KEY"
- name: KUBERNETES
value: "yes"
volumeMounts:
- name: dockersocket
mountPath: /var/run/docker.sock
- name: procdir
mountPath: /host/proc
readOnly: true
- name: cgroups
mountPath: /host/sys/fs/cgroup
readOnly: true
volumes:
- hostPath:
path: /var/run/docker.sock
name: dockersocket
- hostPath:
path: /proc
name: procdir
- hostPath:
path: /sys/fs/cgroup
name: cgroups
DATADOG_API_KEY
를 API 키로 대체하거나 쿠버네티스 시크릿을 사용해 API 키를 환경 변수로 설정합니다.
kubectl create -f dd-agent.yaml
참조: 매니페스트는 자동탐지, 자동 설정 기능을 활성화합니다. 이를 비활성화하려면 SD_BACKEND
환경 변수 정의를 제거하세요. 자동탐지를 설정하는 방법은 자동탐지 가이드를 참조하시기 바랍니다.
dd-check-kubernetes
패키지를 수동 설치하거나 즐겨 사용하는 설정 관리자로 설치하세요.
kubernetes.yaml
파일을 편집해 서버나 포트를 지정하고, 모니터링할 마스터를 설정하세요.
instances:
host: localhost
port: 4194
method: http
사용할 수 있는 모든 설정 옵션의 목록은 샘플 kubernetes.yaml에서 확인할 수 있습니다
환경에서 DaemonSet으로 실행 중인 Datadog Agent를 확인하려면 다음을 실행하세요.
kubectl get daemonset
Agent가 배포되었다면 아래 텍스트와 비슷한 출력값이 표시됩니다. 여기서 desired 및 current는 클러스터에서 실행 중인 노드 개수와 동일합니다.
NAME DESIRED CURRENT NODE-SELECTOR AGE
dd-agent 3 3 <none> 11h
Agent의 info
하위 명령어를 실행하고 점검(Checks) 섹션의 kubernetes
를 찾습니다.
Checks
======
kubernetes
-----------
- instance #0 [OK]
- Collected 39 metrics, 0 events & 7 service checks
버전 1.2.0 이상의 쿠버네티스를 실행 중이라면 kube-state-metrics 프로젝트를 사용해 추가 메트릭을 Datadog로 보낼 수 있습니다(아래 메트릭 목록에서 kubernetes_state
접두어로 알아볼 수 있습니다).
kube-state-metrics를 실행하려면 kube-state-metrics 서비스를 배포하는 다음의 매니페스트를 사용해 kube-state-metrics.yaml
파일을 생성하세요.
apiVersion: extensions/v1beta1
metadata:
name: kube-state-metrics
spec:
replicas: 1
template:
metadata:
labels:
app: kube-state-metrics
spec:
containers:
- name: kube-state-metrics
image: gcr.io/google_containers/kube-state-metrics:v1.2.0
ports:
- name: metrics
containerPort: 8080
resources:
requests:
memory: 30Mi
cpu: 100m
limits:
memory: 50Mi
cpu: 200m
---
apiVersion: v1
metadata:
annotations:
prometheus.io/scrape: 'true'
labels:
app: kube-state-metrics
name: kube-state-metrics
spec:
ports:
- name: metrics
port: 8080
targetPort: metrics
protocol: TCP
selector:
app: kube-state-metrics
이제 다음을 실행해 배포하세요.
kubectl create -f kube-state-metrics.yaml
위의 매니페스트는 Google에서 공개한 kube-state-metrics
컨테이너를 사용합니다. 이는 Quay에서도 사용할 수 있습니다. 직접 구축하고자 하시는 분은 공식 프로젝트 설명서를 참조하세요.
쿠버네티스 상태 메트릭(Kubernetes State Metrics) 서비스를 다른 URL이나 포트에서 실행하기로 설정한 경우, conf.d/kubernetes_state.yaml
의 kube_state_url
파라미터를 설정한 다음 Agent를 재부팅하여 Datadog Agent를 구성할 수 있습니다.
더 자세한 정보가 필요하신 분은 kubernetes_state.yaml.example 파일을 참조하세요. 자동탐지를 사용하신다면 kube state URL이 자동으로 설정되어 관리됩니다.
dd-check-kubernetes_state
패키지를 수동으로, 또는 즐겨 사용하는 설정 관리자로 설치하세요(CentOS/AWS에서는 rpm 패키지를 다운로드하고 설치 가이드를 참조하세요).
다음으로 kubernetes_state.yaml
파일을 수정해 서버와 포트를 지정하고, 모니터링할 마스터를 설정합니다. 사용할 수 있는 모든 설정 옵션의 목록은 샘플 kubernetes_state.yaml에서 확인할 수 있습니다.
환경에서 DaemonSet으로 실행 중인 Datadog Agent를 확인하려면 다음을 실행하세요.
kubectl get daemonset
Agent가 배포되면 아래 텍스트와 유사한 출력이 표시됩니다. 여기서 desired 및 current는 클러스터에서 실행 중인 노드 수와 같습니다.
NAME DESIRED CURRENT NODE-SELECTOR AGE
dd-agent 3 3 <none> 11h
Agent의 info 하위 명령어를 실행하고 점검(Checks) 섹션의 kubernetes_state
를 찾습니다.
Checks
======
kubernetes_state
-----------
- instance #0 [OK]
- Collected 39 metrics, 0 events & 7 service checks
dd-check-kube_dns
패키지를 수동 설치하거나 즐겨 사용하는 설정 관리자로 설치하세요.
다음으로 kube_dns.yaml
파일을 수정해 서버와 포트를 지정하고, 모니터링할 마스터를 설정합니다. 사용할 수 있는 모든 설정 옵션의 목록은 샘플 kube_dns.yaml 에서 확인할 수 있습니다.
쿠버네티스 워커 노드마다 하나의 dd-agent
팟을 사용하는 경우, kube-dns 팟에서 다음의 어노테이션을 사용해 데이터를 자동으로 수집할 수 있습니다.
apiVersion: v1
metadata:
annotations:
service-discovery.datadoghq.com/kubedns.check_names: '["kube_dns"]'
service-discovery.datadoghq.com/kubedns.init_configs: '[{}]'
service-discovery.datadoghq.com/kubedns.instances: '[[{"prometheus_endpoint":"http://%%host%%:10055/metrics", "tags":["dns-pod:%%host%%"]}]]'
참조:
dd-agent
와 연관됩니다.Agent의 info 하위 명령어를 실행하고 점검(Checks) 섹션의 kube_dns
를 찾습니다.
Checks
======
kube_dns
-----------
- instance #0 [OK]
- Collected 39 metrics, 0 events & 7 service checks