• English日本語한국어
  • 로그인지금 시작하기

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

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

문제 신고

Kubernetes 통합 버전 3에 도입된 변경 사항

버전 3부터 New Relic Kubernetes 통합은 보다 모듈화되고 구성 가능한 것을 목표로 하는 아키텍처 를 특징으로 하여 배포 방법을 선택할 수 있는 더 많은 권한을 제공하고 더 많은 환경과 호환되도록 합니다.

Kubernetes 통합 버전 3에서 보고된 데이터는 버전 2 이후로 변경되지 않았습니다. 버전 3의 경우 구성 가능성, 안정성 및 사용자 경험에 중점을 두었습니다. 여기에서 통합에 대한 최신 릴리스 노트를 확인하세요.

중요

Kubernetes 통합 버전 3( appVersion )은 nri-bundle 차트 version 4에 포함되어 있습니다.

마이그레이션 가이드

이전 버전에서 최대한 쉽게 마이그레이션할 수 있도록 이전 newrelic-infrastructure 차트에서 구성 가능한 옵션 대부분을 새로운 옵션으로 변환하는 호환성 레이어를 개발했습니다. 이 호환성 레이어는 일시적이며 향후 제거될 예정입니다. 이 가이드를 주의 깊게 읽고 사람의 감독하에 구성을 마이그레이션하는 것이 좋습니다. 여기에서 업데이트된 newrelic-infrastructure 차트에 대한 자세한 내용을 읽을 수 있습니다.

KSM(Kube State Metrics) 구성

KSM 모니터링은 대부분의 구성에서 기본적으로 작동합니다. 대부분의 사용자는 이 구성을 변경할 필요가 없습니다.

  • disableKubeStateMetrics ksm.enabled 으로 대체되었습니다. 기본값은 여전히 동일합니다(KSM 스크래핑 활성화됨).
  • kubeStateMetricsScheme, kubeStateMetricsPort , kubeStateMetricsUrl , kubeStateMetricsPodLabelkubeStateMetricsNamespace 는 보다 포괄적이고 유연한 ksm.config 로 대체되었습니다.
  • 참고로 KSM v2+는 기본적으로 레이블 측정항목을 비활성화합니다. Kubernetes 클러스터에서 여기 에 설명된 metricLabelsAllowlist 옵션을 사용하여 모니터링할 대상 라벨 측정항목을 활성화할 수 있습니다.

ksm.config 객체의 구조는 다음과 같습니다.

ksm:
config:
# When autodiscovering KSM, force the following scheme. By default, `http` is used.
scheme: "http"
# Label selector to find kube-state-metrics endpoints. Defaults to `app.kubernetes.io/name=kube-state-metrics`.
selector: "app.kubernetes.io/name=kube-state-metrics"
# Restrict KSM discovery to this particular namespace. Defaults to all namespaces.
namespace: ""
# When autodiscovering, only consider endpoints that use this port. By default, all ports from the discovered `endpoint` are probed.
#port: 8080
# Override autodiscovery mechanism completely and specify the KSM url directly instead
#staticUrl: "http://test.io:8080/metrics"

제어 평면 구성

제어 평면 구성이 크게 변경되었습니다. 이전에 제어 플레인 모니터링을 활성화한 경우 제어 플레인 모니터링 구성 설명서를 살펴보는 것이 좋습니다.

다음 옵션은 위에 링크된 섹션에서 다루는 보다 포괄적인 구성으로 대체되었습니다.

  • apiServerSecurePort
  • etcdTlsSecretName
  • etcdTlsSecretNamespace
  • controllerManagerEndpointUrl, etcdEndpointUrl , apiServerEndpointUrlschedulerEndpointUrl

에이전트 구성

이전에 config 에 지정된 에이전트 구성 파일이 common.agentConfig 로 이동되었습니다. 파일 형식은 변경되지 않았으며 구성할 수 있는 전체 옵션 범위는 여기에서 확인할 수 있습니다.

다음 에이전트 옵션은 이전에 values.yml 파일 루트에서 "별칭"이 지정되었으므로 no longer available [더 이상 사용할 수 없습니다].

  • logFile common.agentConfig.log_file 으로 대체되었습니다.
  • eventQueueDepth common.agentConfig.event_queue_depth 으로 대체되었습니다.
  • customAttributes 형식이 yaml 객체로 변경되었습니다. 이전 형식은 수동으로 JSON으로 인코딩된 문자열입니다. 예: {"team": "devops"} 은(는) 더 이상 사용되지 않습니다.
  • 이전에는 customAttributes 에 제거할 경우 원치 않는 결과가 발생할 수 있는 기본 clusterName 항목이 있었습니다. 더 이상 그렇지 않습니다. 이제 사용자는 customAttributes 전체를 안전하게 재정의할 수 있습니다.
  • discoveryCacheTTL 이제 캐시가 내장된 Kubernetes 정보를 사용하여 검색이 수행되므로 완전히 제거되었습니다.

통합 구성

통합은 이전에 배열 형식을 사용하여 integrations_config 아래에 구성되었습니다.

integrations_config:
- name: nri-redis.yaml
data:
discovery: # ...
integrations: # ...

메커니즘은 동일하게 유지되지만 보다 사용자 친화적으로 형식을 변경했습니다.

integrations:
nri-redis-sampleapp:
discovery: # ...
integrations: # ...

또한 이제 검색 명령에서 --port--tls 플래그가 필수입니다. 과거에는 다음이 작동했습니다.

integrations:
nri-redis-sampleapp:
discovery:
command:
exec: /var/db/newrelic-infra/nri-discovery-kubernetes

v3부터 --port--tls 을 지정해야 합니다.

integrations:
nri-redis-sampleapp:
discovery:
command:
exec: /var/db/newrelic-infra/nri-discovery-kubernetes --tls --port 10250

이 변경이 필요한 이유는 v2 이하에서는 nrk8s-kubelet 구성 요소(또는 이에 상응하는 구성 요소)가 hostNetwork: true 로 실행되어 nri-discovery-kubernetes localhost 및 일반 http를 사용하여 kubelet에 연결할 수 있기 때문입니다. 보안상의 이유로 더 이상 그렇지 않습니다. 따라서 지금부터 두 플래그를 모두 지정해야 합니다.

Kubernetes에서 온호스트 통합을 구성하는 방법에 대한 자세한 내용은 Kubernetes 설명서의 모니터 서비스를 확인하세요.

기타 차트 값

통합 구성과 관련이 없지만 Helm 차트에 대한 다음 기타 옵션도 변경되었습니다.

  • runAsUser 포드에 직접 템플릿화되고 더 많은 구성이 가능한 securityContext 으로 대체되었습니다.

  • resources 이제 세 가지 다른 워크로드를 배포하므로 제거되었습니다. 각각에 대한 리소스는 다음에서 개별적으로 구성할 수 있습니다.

    • ksm.resources
    • kubelet.resources
    • controlPlane.resources
  • tolerations 3개로 분할되어 이전 항목은 더 이상 유효하지 않습니다. 세 가지 모두 기본적으로 NoScheduleNoExecute 의 모든 값을 허용합니다.

    • ksm.tolerations
    • kubelet.tolerations
    • controlPlane.tolerations
  • image 모든 하위 키는 현재 배포된 세 개의 이미지 각각에 대한 개별 섹션으로 대체되었습니다.

    • images.forwarder.* 인프라 에이전트 전달자를 구성합니다.
    • images.agent.* 인프라-에이전트 및 온-호스트 통합을 번들하는 이미지를 구성합니다.
    • images.integration.* k8s 데이터 스크래핑을 담당하는 이미지를 구성합니다.

v2에서 업그레이드

버전 2( nri-bundle 차트 버전 3.x에 포함됨)에서 Kubernetes 통합을 업그레이드하려면 원하는 대로 values-newrelic.yaml 파일을 생성하는 것이 좋습니다. 그리고 구성. 이전에 다음과 같은 명령을 사용하여 CLI에서 직접 차트를 설치한 경우:

bash
$
helm install newrelic/nri-bundle \
>
--set global.licenseKey=<New Relic License key> \
>
--set global.cluster=<Cluster name> \
>
--set infrastructure.enabled=true \
>
--set prometheus.enabled=true \
>
--set webhook.enabled=true \
>
--set ksm.enabled=true \
>
--set kubeEvents.enabled=true \
>
--set logging.enabled=true

제공된 --set 인수를 사용하여 다음과 같이 yaml 파일에 넣을 수 있습니다.

# values-newrelic.yaml
global:
licenseKey: <New Relic License key>
cluster: <Cluster name>
infrastructure:
enabled: true
prometheus:
enabled: true
webhook:
enabled: true
ksm:
enabled: true
kubeEvents:
enabled: true
logging:
enabled: true

이 작업을 수행하고 위의 마이그레이션 가이드에 따라 변경했을 수 있는 다른 설정을 적용한 후 다음 명령을 실행하여 nri-bundle ) 업그레이드할 수 있습니다.

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

중요

--reuse-values 플래그는 v2에서 v3으로 업그레이드하는 데 지원되지 않습니다.

Copyright © 2024 New Relic Inc.

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