• EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

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

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

문제 신고

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.