• 로그인

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

Helm을 사용하여 Kubernetes 통합 설치

Helm 은 Kubernetes 위에 있는 패키지 관리자입니다. 설치, 업그레이드 또는 개정 추적을 용이하게 하고 Kubernetes에 설치하는 서비스에 대한 종속성을 관리합니다.

Helm을 사용하여 통합을 설치하려면 일부 구성 옵션을 묻는 메시지를 표시하고 비밀과 값을 자동으로 채우는 Kubernetes 자동 설치 프로그램을 권장합니다. 또한 자동화된 설치 프로그램을 사용하면 통합을 Helm 릴리스가 아닌 일반 매니페스트로 설치할 수도 있습니다. 자동화된 설치 프로그램을 사용하는 방법에 대한 자세한 내용은 Kubernetes 통합: 설치 및 구성 을 참조하세요.

설치 프로그램 시작

이 페이지에서는 자동화된 설치 프로그램을 사용하지 않고 New Relic 통합을 설치하고 구성하는 방법에 대해 자세히 설명합니다.

호환성 및 요구 사항

Helm 이 컴퓨터에 설치되어 있는지 확인하십시오. Kubernetes 통합 버전 3에는 Helm 버전 3이 필요합니다.

EOL 공지

2022년 4월 30일부터 Helm v2를 비롯한 여러 기능에 대한 지원이 중단됩니다. 이 전환을 쉽게 준비하는 방법을 비롯한 자세한 내용은 Explorers Hub 게시물 을 참조하세요.

Helm을 사용하여 Kubernetes 통합을 설치하려면 New Relic 계정 라이선스 키와 Kubernetes 클러스터 이름이 필요합니다.

  1. New Relic 라이센스 키 를 찾아 복사합니다.
  2. 클러스터의 표시 이름을 선택합니다. 예를 들어 다음과 같은 출력을 사용할 수 있습니다.
bash
$
kubectl config current-context

나중에 설치 프로세스 중에 필요하므로 이 값을 안전한 곳에 기록해 두십시오.

Helm과 Kubernetes 통합 설치

New Relic에는 플랫폼에 다양한 기능을 제공하는 다양한 구성 요소에 대한 여러 차트가 있습니다.

  • newrelic-infrastructure : 기본 Kubernetes 통합 및 인프라 에이전트를 포함합니다. 이것은 Kubernetes 대시보드 및 Kubernetes 클러스터 탐색기에 표시되는 대부분의 데이터 보고를 담당하는 New Relic Kubernetes 환경의 핵심 구성요소입니다.
  • newrelic-logging : New Relic의 Fluent Bit 출력 플러그인 과 함께 DaemonSet을 제공하여 로그를 New Relic 으로 쉽게 전달할 수 있습니다.
  • nri-kube-events : 클러스터 이벤트(예: kubectl get events )를 수집하고 New Relic에 보고합니다.
  • nri-prometheus : New Relic의 Prometheus OpenMetrics 통합은 클러스터에 있는 Prometheus 엔드포인트를 자동으로 스크랩 하고 New Relic에 측정항목을 보고합니다 .
  • nri-metadata-injection : 컨테이너에 몇 가지 환경 변수를 삽입하는 최소 MutatingAdmissionWebhook 를 설정합니다. 여기에는 클러스터 및 New Relic 설치에 대한 메타데이터가 포함되어 있으며 나중에 APM을 사용하여 계측된 애플리케이션에서 선택하여 APM과 인프라 데이터를 상호 연관 시킬 수 있습니다.
  • nri-statsd : New Relic StatsD 통합.

편의를 위해 New Relic은 위에서 언급한 차트의 선택 가능한 집합을 가져오는 nri-bundle 차트를 제공합니다. 필요한 경우 nri-bundle 에서 Kube State Metrics 및 Pixie를 설치할 수도 있습니다.

이러한 차트를 별도로 설치할 수 있지만 Kubernetes 배포에 nri-bundle 차트를 사용하는 것이 좋습니다. 모든 차트의 값이 일관되고 설치되는 구성요소에 대한 완전한 제어를 제공하고 그들 모두를 Helm 종속성 으로 구성하십시오. 이것은 자동 설치 프로그램에서 사용하고 참조하는 것과 동일한 차트입니다.

Helm으로 nri-bundle 설치 및 구성

  1. Helm 및 kubectl 를 실행할 머신에서 적절한 컨텍스트를 사용하고 있는지 확인합니다.

다음을 사용하여 사용 가능한 컨텍스트를 확인할 수 있습니다.

bash
$
kubectl config get-contexts

다음을 사용하여 원하는 컨텍스트로 전환합니다.

bash
$
kubectl config use-context _CONTEXT_NAME_
  1. New Relic Helm 차트 리포지토리 추가:
bash
$
helm repo add newrelic https://helm-charts.newrelic.com
  1. 구성을 정의하는 데 사용할 values-newrelic.yaml 파일을 만듭니다.
global:
licenseKey: _YOUR_NEW_RELIC_LICENSE_KEY_
cluster: _K8S_CLUSTER_NAME_
prometheus:
# Automatically scrape prometheus metrics for annotated services in the cluster
# Collecting prometheus metrics for large clusters might impact data usage significantly
enabled: true
lowDataMode: true # Skip ingesting cluster-level metrics
webhook:
# Deploy our webhook to link APM and Kubernetes entities
enabled: true
kubeEvents:
# Report Kubernetes events
enabled: true
logging:
# Report logs for containers running in the cluster
enabled: true
ksm:
# Deploy kube-state-metrics in the cluster.
# Set this to true unless it is already deployed.
enabled: true
  1. 다음 명령을 실행하여 차트에서 모든 것이 올바르게 구성되었는지 확인하십시오. --dry-run--debug 을 지정하므로 이 단계에서는 아무 것도 설치되지 않습니다.
bash
$
helm upgrade --install newrelic newrelic/nri-bundle \
>
--namespace newrelic --create-namespace \
>
-f values-newrelic.yaml \
>
--dry-run \
>
--debug

다음 플래그를 확인하고 조정하십시오.

  • global.licenseKey=YOUR_NEW_RELIC_LICENSE_KEY: 계정에 유효한 라이선스 키로 설정해야 합니다.
  • global.cluster=K8S_CLUSTER_NAME: New Relic UI에서 클러스터를 식별하는 데 사용되므로 New Relic 계정에 구성된 다른 Kubernetes 클러스터에서 사용하지 않는 설명적인 값이어야 합니다.
  • ksm.enabled=true: 이것을 true 으로 설정하면 통합을 실행하는 데 필요한 Kube State Metrics(KSM)가 자동으로 설치됩니다. KSM이 다른 네임스페이스에 있더라도 클러스터에 이미 있는 경우 이를 false로 설정할 수 있습니다.
  • prometheus.enabled=true: 클러스터에 있는 Prometheus 끝점에서 데이터를 자동으로 수집하는 Prometheus OpenMetrics 통합을 배포합니다.
  • webhook.enabled=true: New Relic APM으로 계측된 애플리케이션을 Kubernetes에 연결할 수 있도록 하는 환경 변수를 추가하는 최소 웹훅을 설치합니다.

Kubernetes 차트에는 특정 요구 사항에 더 잘 맞도록 편집할 수 있는 포괄적인 플래그 및 조정 가능 집합이 있습니다. 변경할 수 있는 사항을 보려면 아래 의 통합 구성 섹션을 확인하십시오.

  1. --debug--dry-run 없이 명령을 실행하여 Kubernetes 통합을 설치합니다.
bash
$
helm upgrade --install newrelic newrelic/nri-bundle \
>
--namespace newrelic --create-namespace \
>
-f values-newrelic.yaml \
  1. Pod가 배포되고 안정적인 상태에 도달하는지 확인합니다.
bash
$
kubectl -n newrelic get pods -w

넌 봐야 해:

  1. 하나의 newrelic-nrk8s-ksm 포드.
  2. 클러스터의 각 노드에 대해 하나의 newrelic-nrk8s-kubelet 포드.
  3. 클러스터의 각 마스터 노드에 대해 하나의 newrelic-nrk8s-control-plane 포드(있는 경우).
  4. 설치에 KSM이 포함된 경우 하나의 newrelic-kube-state-metrics 포드.
  5. Kubernetes 이벤트 보고를 활성화한 경우 하나의 newrelic-nri-kube-events 포드.
  6. Prometheus 통합을 활성화한 경우 하나의 newrelic-nri-prometheus 포드.
  7. Logging 통합을 활성화한 경우 클러스터의 각 노드에 대해 하나의 newrelic-newrelic-logging 포드.

Helm 2 및 nri-bundle(레거시)로 설치

통합 구성

nri-bundle 차트. 설치 지침은 위에서 찾을 수 있으며, 우리 솔루션의 구성 요소를 포함하는 몇 가지 다른 차트에 대한 래퍼 또는 메타 패키지 역할을 합니다. 이러한 래퍼를 제공함으로써 구성 요소의 차트를 비교적 단순하게 유지하면서 서로 호환되는 것으로 알려진 버전으로 제어된 구성 요소 집합을 제공할 수 있습니다.

개별 통합 구성 요소를 구성하려면 Helm의 종속성 시스템을 사용해야 합니다. 즉, 하위 차트에 대한 구성은 해당 차트의 이름이 있는 섹션 아래에 있어야 함을 의미합니다. 예를 들어, newrelic-infrastructure 차트를 구성하려면 values-newrelic.yaml 에 다음을 추가합니다.

global:
licenseKey: _YOUR_NEW_RELIC_LICENSE_KEY_
cluster: _K8S_CLUSTER_NAME_
# ... Other settings as shown above
# Configuration for newrelic-infrastructure
newrelic-infrastructure:
verboseLog: true # Enable debug logs
privileged: false # Install with minimal privileges
# Other options from https://github.com/newrelic/helm-charts/tree/master/charts/newrelic-infrastructure-v3

조정할 수 있는 플래그의 전체 목록은 차트 저장소에서 찾을 수 있습니다.

이러한 차트에 대한 옵션을 지정할 때 values-newrelic.yaml 의 차트 이름 아래에 넣어야 합니다.

투구를 사용하여 업그레이드

Helm을 통해 설치된 Kubernetes 통합을 업데이트하려면:

  1. 로컬 차트 리포지토리를 업데이트합니다.

    bash
    $
    helm repo update
  2. 위 섹션에서 적절한 helm upgrade --install ... 명령을 다시 실행하여 릴리스를 업데이트합니다.

    bash
    $
    helm upgrade --install newrelic newrelic/nri-bundle \
    >
    --namespace newrelic --create-namespace \
    >
    -f values-newrelic.yaml

Kubernetes에서 실행되는 서비스 모니터링

Kubernetes 통합을 설치한 후 클러스터에서 실행되는 서비스 계측을 시작할 수 있습니다. 이 작업을 수행하는 방법에 대해 자세히 알아보려면 Kubernetes에서 실행 중인 모니터링 서비스 페이지를 확인하세요.

Kubernetes 데이터 사용

Kubernetes 데이터를 사용하는 방법에 대해 자세히 알아보려면 자세한 Kubernetes 데이터 찾기 및 사용 페이지로 이동하십시오 .

데이터 수집 줄이기

당사의 차트는 세부 정보를 삭제하는 대신 수집된 데이터의 양을 줄이는 옵션 설정을 지원합니다. 활성화하려면 nri-bundle 차트에서 global.lowDataModetrue 로 설정합니다.

lowDataMode 아래에 설명된 nri-bundle 차트의 4가지 특정 구성요소에 영향을 미칩니다.

New Relic 기반 시설

lowDataMode 이 활성화되면 기본 스크래핑 간격이 15s 에서 30s 으)로 변경됩니다. lowDataMode 보다 우선 적용되는 config.interval 를 사용하여 사용자 정의 값을 지정할 수도 있습니다.

Prometheus OpenMetrics 통합

lowDataMode 이 활성화된 경우 다음 측정항목은 New Relic Kubernetes 통합 에서 이미 수집 및 사용되므로 기본적으로 제외됩니다.

- kube_
- container_
- machine_
- cadvisor_

New Relic 로깅

lowDataMode 이 활성화된 경우 레이블 및 주석은 fluent-bit.conf 파일의 필터 섹션 에서 Off 로 설정됩니다. 즉, 이 세부 정보가 컨테이너 로그 파일에서 삭제되어 New Relic으로의 전체 데이터 수집이 줄어듭니다.

다음 필드가 유지됩니다.

Allowlist_key container_name
Allowlist_key namespace_name
Allowlist_key pod_name
Allowlist_key stream
Allowlist_key log

낮은 데이터 모드 로그 예

전체 로그 기록

[
{
"cluster_name": "api-test",
"kubernetes": {
"annotations": {
"kubernetes.io/psp": "eks.privileged"
},
"container_hash": "fryckbos/test@sha256:5b098eaf3c7d5b3585eb10cebee63665b6208bea31ef31a3f0856c5ffdda644b",
"container_image": "fryckbos/test:latest",
"container_name": "newrelic-logging",
"docker_id": "134e1daf63761baa15e035b08b7aea04518a0f0e50af4215131a50c6a379a072",
"host": "ip-192-168-17-123.ec2.internal",
"labels": {
"app": "newrelic-logging",
"app.kubernetes.io/name": "newrelic-logging",
"controller-revision-hash": "84db95db86",
"pod-template-generation": "1",
"release": "nri-bundle"
},
"namespace_name": "nrlogs",
"pod_id": "54556e3e-719c-46b5-af69-020b75d69bf1",
"pod_name": "nri-bundle-newrelic-logging-jxnbj"
},
"message": "[2021/09/14 12:30:49] [ info] [engine] started (pid=1)\n",
"plugin": {
"source": "kubernetes",
"type": "fluent-bit",
"version": "1.8.1"
},
"stream": "stderr",
"time": "2021-09-14T12:30:49.138824971Z",
"timestamp": 1631622649138
}
]

lowDataMode 활성화 후 기록 기록.

[
{
"cluster_name": "api-test",
"container_name": "newrelic-logging",
"namespace_name": "nrlogs",
"pod_name": "nri-bundle-newrelic-logging-jxnbj",
"message": "[2021/09/14 12:30:49] [ info] [engine] started (pid=1)\n",
"stream": "stderr",
"timestamp": 1631622649138
}
]

New Relic 픽시 통합

lowDataMode 이 활성화된 경우 newrelic-pixie 통합은 Pixie 스팬에서 더 많은 샘플링을 수행하고 수집 간격을 10초에서 15초로 줄입니다.

lowDataMode 설정:

HTTP_SPAN_LIMIT: 750
DB_SPAN_LIMIT: 250
COLLECT_INTERVAL_SEC: 15

이러한 매개변수 및 기타 매개변수에 대한 기본 설정은 newrelic-pixie-integration Github 리포지토리에서 찾을 수 있습니다.

Kubernetes 통합 제거

Helm을 사용하여 Kubernetes 통합을 제거하려면 다음 명령을 실행하십시오.

bash
$
helm uninstall newrelic -n newrelic
Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.