• 로그인지금 시작하기

Helm을 사용한 쿠버네티스 통합 설치

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

Helm을 사용하여 통합을 설치하려면 일부 구성 옵션을 선택할 수 있고 비밀과 값을 자동으로 채워주는 쿠버네티스 자동 설치 프로그램을 사용하길 권합니다. 또한 자동화된 설치 프로그램을 사용하면 통합을 Helm 릴리스가 아닌 일반 매니페스트로 설치할 수도 있습니다. 자동화된 설치 프로그램을 사용하는 방법에 대한 보다 자세한 내용은 쿠버네티스 통합: 설치 및 구성을 참조하십시오.

설치 프로그램 시작

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

호환성 및 요구사항

Helm이 컴퓨터에 설치되어 있어야 합니다. 쿠버네티스 통합 버전 3에는 Helm 버전 3이 필요합니다.

지원 중단 공지

2022년 4월 30일부터 Helm 버전 2를 포함해 여러 기능에 대한 지원이 중단됩니다. 지원 중단을 대비하는 방법을 비롯한 보다 자세한 내용은 Explorers Hub의 게시물을 참조하십시오.

Helm을 사용하여 쿠버네티스 통합을 설치하려면 뉴렐릭 계정 라이선스 키와 쿠버네티스 클러스터 이름이 필요합니다.

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

나중에 설치 과정에서 필요하므로 이 값을 안전한 곳에 기록해 두시기 바랍니다.

Helm과 쿠버네티스 통합 설치

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

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

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

이러한 차트를 개별적으로 설치할 수 있지만, 쿠버네티스 배포에 대해 nri-bundle 차트를 사용하는 것이 좋습니다. 그래야 모든 차트의 값이 일관되고 설치되는 구성요소에 대한 완전한 제어가 가능할 뿐아니라, 모두를 Helm 종속성으로 구성할 수 있습니다. 이는 뉴렐릭의 자동 설치 프로그램이 사용하고 참조하는 차트와 동일합니다.

Helm을 사용한 nri-bundle 설치 및 구성

  1. Helm 및 kubectl을 실행할 시스템이 적절한 컨텍스트를 사용하고 있는지 확인합니다.

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

bash
$
kubectl config get-contexts

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

bash
$
kubectl config use-context _CONTEXT_NAME_
  1. 뉴렐릭 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: 뉴렐릭 UI에서 클러스터를 식별하는 데 사용되므로, 뉴렐릭 계정에 구성된 다른 쿠버네티스 클러스터에서 사용되지 않는 설명 값을 사용해야 합니다.
  • ksm.enabled=true: 이 값을 true로 설정하면 통합을 실행하는 데 필요한 Kube State Metrics(KSM)가 자동으로 설치됩니다. KSM이 다른 네임스페이스에 있더라도 클러스터에 이미 있는 경우 이 값을 false로 설정할 수 있습니다.
  • prometheus.enabled=true: 클러스터에 있는 Prometheus 엔드포인트에서 데이터를 자동으로 수집하는 Prometheus OpenMetrics 통합을 배포합니다.
  • webhook.enabled=true: 뉴렐릭 APM으로 계측된 애플리케이션을 쿠버네티스에 연결할 수 있도록 하는 환경 변수를 추가하는 소규모 웹훅을 설치합니다.

쿠버네티스 차트에는 특정 요구 사항에 더 잘 맞도록 수정할 수 있는 포괄적인 플래그와 조정 가능 세트가 있습니다. 변경할 수 있는 사항을 보려면 아래 통합 구성 섹션을 확인하십시오.

  1. --debug--dry-run 없이 명령어를 실행하여 쿠버네티스 통합을 설치합니다.
bash
$
helm upgrade --install newrelic newrelic/nri-bundle \
>
--namespace newrelic --create-namespace \
>
-f values-newrelic.yaml \
  • 참고: 1.25+ 버전에서는 파드 보안 정책이 사용되지 않으므로 쿠버네티스 버전 1.24.X 또는 이전 버전을 사용하고 있는지 확인하십시오. 버전 1.25 이상을 사용하는 경우 위 명령을 실행할 때 다음 오류가 발생합니다.

    bash
    $
    Error: UPGRADE FAILED: pre-upgrade hooks failed: unable to build kubernetes object for deleting hook nri-bundle/charts/nri-metadata-injection/templates/admission-webhooks/job-patch/psp.yaml: resource mapping not found for name: "newrelic-nri-metadata-injection-admission" namespace: "" from "": no matches for kind "PodSecurityPolicy" in version "policy/v1beta1"
    $
    ensure CRDs are installed first
  1. 파드가 배포되고 안정적인 상태에 도달하는지 확인합니다.
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. 쿠버네티스 이벤트 보고를 활성화한 경우 하나의 newrelic-nri-kube-events 파드
  6. Prometheus 통합을 활성화한 경우 하나의 newrelic-nri-prometheus 파드
  7. Logging 통합을 활성화한 경우 클러스터의 각 노드에 대해 하나의 newrelic-newrelic-logging 파드

Helm 2 및 nri-bundle(레거시)을 사용한 설치

While you wait for your data to come in...

Did this doc help you install?

통합 구성

뉴렐릭의 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를 사용한 업그레이드

Helm을 통해 설치된 쿠버네티스 통합을 업데이트하려면:

  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

쿠버네티스에서 실행되는 서비스 모니터링

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

쿠버네티스 데이터 사용

쿠버네티스 데이터를 사용하는 자세한 방법은 쿠버네티스 데이터 찾기 및 사용 페이지로 이동하십시오.

데이터 인제스트 감소

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

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

뉴렐릭 Infrastructure

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

Prometheus OpenMetrics 통합

lowDataMode가 활성화된 경우 다음 메트릭은 뉴렐릭 쿠버네티스 통합에서 이미 수집되고 사용되므로 기본적으로 제외됩니다.

- kube_
- container_
- machine_
- cadvisor_

뉴렐릭 로깅

lowDataMode가 활성화된 경우 레이블 및 주석은 fluent-bit.conf 파일의 Filter 섹션에서 Off로 설정됩니다. 이는 세부 정보가 컨테이너 로그 파일에서 삭제되어 뉴렐릭으로의 전체 데이터 인제스트가 줄어든다는 의미입니다.

다음 필드는 유지됩니다.

Allowlist_key container_name
Allowlist_key namespace_name
Allowlist_key pod_name
Allowlist_key stream
Allowlist_key log

Low Data Mode Log Example

Complete Log Record

[
{
"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
}
]

Log Record after enabling 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
}
]

뉴렐릭 Pixie 통합

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

lowDataMode settings:

HTTP_SPAN_LIMIT: 750
DB_SPAN_LIMIT: 250
COLLECT_INTERVAL_SEC: 15

이러한 파라미터와 기타 파라미터에 대한 기본 설정은 newrelic-pixie-integration Github 리포지토리에서 찾을 수 있습니다.

쿠버네티스 통합 제거

Helm을 사용하여 쿠버네티스 통합을 제거하려면 다음 명령을 실행하십시오.

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.