Helm은 쿠버네티스 위에 있는 패키지 매니저입니다. 설치, 업그레이드 또는 개정 추적을 용이하게 하고 쿠버네티스에 설치하는 서비스들의 종속성을 관리합니다. 아직 계정이 없으시면, 아래에서 무료 뉴렐릭 계정을 생성해 지금 바로 데이터 모니터링을 시작하십시오.
Helm을 사용하여 통합을 설치하려면 쿠버네티스 안내 설치를 사용할 것을 권합니다. 안내 설치를 이용하면, 몇 가지 구성 옵션에 대한 메시지가 표시되고 비밀과 값이 자동으로 채워집니다. 또한 통합을 Helm 릴리스가 아닌 일반 매니페스트로 설치할 수도 있습니다.
호환성 및 요구사항
Helm이 컴퓨터에 설치되어 있어야 합니다. 쿠버네티스 통합 버전 3에는 Helm 버전 3이 필요합니다.
Helm을 사용하여 쿠버네티스 통합을 설치하려면 뉴렐릭 와 쿠버네티스 클러스터 이름이 필요합니다.
를 찾아 복사합니다.
클러스터가 표시될 이름을 선택합니다. 예를 들어 다음과 같은 출력을 사용할 수 있습니다.
bash$kubectl config current-context
중요
나중에 설치 과정에서 필요하므로 이 값을 안전한 곳에 기록해 두시기 바랍니다.
Helm과 쿠버네티스 통합 설치
뉴렐릭에는 플랫폼에 다양한 기능을 제공하는 다양한 구성 요소에 대한 차트가 여러 개 있습니다.
newrelic-infrastructure
: 주요 쿠버네티스 통합 및 인프라 에이전트를 포함합니다. 쿠버네티스 대시보드와 쿠버네티스 클러스터 탐색기에 표시되는 대부분의 데이터를 보고하는 일을 담당하는 뉴렐릭 쿠버네티스 환경의 핵심 구성요소입니다.newrelic-logging
: 뉴렐릭의 Fluent Bit 출력 플러그인에 DaemonSet을 제공하여 로그를 뉴렐릭으로 쉽게 전달할 수 있도록 합니다.nri-kube-events
: 클러스터 이벤트(예:kubectl get events
)를 수집하고 뉴렐릭에 보고합니다.prometheus-agent
: 뉴렐릭의 Prometheus Configurator는 에이전트 모드에서 Prometheus를 구성하고 원격 쓰기 엔드포인트를 사용하여 텔레메트리를 뉴렐릭에 보고합니다.nri-metadata-injection
: 컨테이너에 몇 가지 환경 변수를 삽입하는 최소MutatingAdmissionWebhook
를 설정합니다. 여기에는 클러스터와 뉴렐릭 설치에 대한 메타데이터가 포함되어 있으며, 나중에 APM을 사용하여 계측된 애플리케이션에서 픽업되어 APM과 인프라 데이터를 상호 연관시킬 수 있도록 합니다.nri-statsd
: 뉴렐릭 StatsD 통합.
편의를 위해 뉴렐릭은 위에서 언급한 차트에서 선택 가능한 세트를 가져오는 nri-bundle
차트를 제공합니다. 필요한 경우 nri-bundle
는 또한 Kube State Metrics와 Pixie를 설치할 수도 있습니다.
이 차트들을 별도로 설치할 수 있지만, 쿠버네티스 배포를 위해 nri-bundle
차트를 사용할 것을 권합니다. 모든 차트의 값이 일관되고 어떤 구성 요소를 설치할지 완전하게 제어할 수 있으며, 모든 것을 Helm에 종속되도록 구성할 수 있기 때문입니다. 차트는 쿠버네티스 안내 설치에서 사용하고 참조하는 것과 동일합니다.
Helm을 사용한 nri-bundle
설치 및 구성
Helm 및
kubectl
을 실행할 시스템에서 적절한 컨텍스트를 사용하고 있는지 확인합니다.다음을 사용하여 사용 가능한 컨텍스트를 확인할 수 있습니다.
bash$kubectl config get-contexts다음을 사용하여 원하는 컨텍스트로 전환합니다.
bash$kubectl config use-context _CONTEXT_NAME_뉴렐릭 Helm 차트 리포지토리 추가:
bash$helm repo add newrelic https://helm-charts.newrelic.com구성을 정의하는 데 사용할 파일을 생성하고
values-newrelic.yaml
라는 이름을 지정합니다.global:licenseKey: _YOUR_NEW_RELIC_LICENSE_KEY_cluster: _K8S_CLUSTER_NAME_newrelic-prometheus-agent:# Automatically scrape prometheus metrics for annotated services in the cluster# Collecting prometheus metrics for large clusters might impact data usage significantlyenabled: truenri-metadata-injection:# Deploy our webhook to link APM and Kubernetes entitiesenabled: truenri-kube-events:# Report Kubernetes eventsenabled: truenewrelic-logging:# Report logs for containers running in the clusterenabled: truekube-state-metrics:# Deploy kube-state-metrics in the cluster.# Set this to true unless it is already deployed.enabled: true다음 명령을 실행하여 차트의 모든 항목이 올바르게 구성되었는지 확인합니다.
--dry-run
및--debug
를 지정하는 단계로, 이 단계에서는 아무것도 설치되지 않습니다.bash$helm upgrade --install newrelic-bundle 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에서 클러스터를 식별하는 데 사용되므로, 뉴렐릭 계정에 구성된 다른 쿠버네티스 클러스터에서 사용되지 않는 설명 값을 사용해야 합니다.kube-state-metrics.enabled=true
: 이 값을true
로 설정하면 통합을 실행하는 데 필요한 Kube State Metrics(KSM)가 자동으로 설치됩니다. KSM이 다른 네임스페이스에 있더라도 클러스터에 이미 있는 경우 이 값을 false로 설정할 수 있습니다.newrelic-prometheus-agent.enabled=true
: 클러스터에 있는 Prometheus 엔드포인트에서 자동으로 데이터를 수집하는 Prometheus 에이전트를 배포합니다.nri-metadata-injection.enabled=true
: 뉴렐릭 APM으로 계측된 애플리케이션을 쿠버네티스에 연결할 수 있도록 하는 환경 변수를 추가하는 소규모 웹훅을 설치합니다.
쿠버네티스 차트에는 특정 요구 사항에 더 잘 맞도록 수정할 수 있는 포괄적인 플래그와 조정 가능 세트가 있습니다. 변경할 수 있는 사항을 보려면 아래 통합 구성 섹션을 확인하십시오.
--debug
및--dry-run
없이 명령어를 실행하여 쿠버네티스 통합을 설치합니다.bash$helm upgrade --install newrelic-bundle newrelic/nri-bundle \>--namespace newrelic --create-namespace \>-f values-newrelic.yaml중요
쿠버네티스 버전 1.25.x 버전이나 지원되는 낮은 버전을 사용하고 있는지 확인합니다.
파드가 배포되고 안정적인 상태에 도달하는지 확인합니다.
bash$kubectl -n newrelic get pods -w
다음 상태여야 합니다.
- 하나의
newrelic-nrk8s-ksm
파드 - 클러스터의 각 노드에 대해 하나의
newrelic-nrk8s-kubelet
파드 - 클러스터의 각 마스터 노드에 대해 하나의
newrelic-nrk8s-control-plane
파드(있는 경우) - 설치에 KSM이 포함된 경우 하나의
newrelic-kube-state-metrics
파드 - 쿠버네티스 이벤트 보고를 활성화한 경우 하나의
newrelic-nri-kube-events
파드 - Prometheus 에이전트 통합을 활성화한 경우 하나의
prometheus-agent
파드 - 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-infrastructurenewrelic-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
조정할 수 있는 플래그의 전체 목록(예: scrape-interval)은 차트의 저장소에 있습니다.
newrelic-infrastructure
- 디버그 로그, 권한 모드, 컨트롤 플레인 모니터링 등을 설정합니다.
nri-kube-events
nri-metadata-injection
- APM 연동을 위한 Webhook 배포 방식을 설정합니다.
- 스크래핑할 Prometheus 엔드포인트을 설정합니다.
newrelic-logging
- 뉴렐릭으로 보낼 로그를 설정합니다.
팁
이 차트에 대한 옵션을 지정할 때는 이들을 values-newrelic.yaml
의 차트 이름 아래에 두어야 합니다.