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

이 한글 문서는 사용자의 편의를 위해 기계 번역되었습니다.

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

문제 신고

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

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

Kubernetes 통합 버전 3에서 보고한 데이터는 버전 2 이후로 변경되지 않았습니다. 버전 3의 경우 구성 가능성, 안정성 및 사용자 경험에 중점을 두었습니다.

중요

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

마이그레이션 가이드

이전 버전에서 가능한 한 쉽게 마이그레이션할 수 있도록 이전 newrelic-infrastructure 차트에서 지정할 수 있는 대부분의 옵션을 새 대응 항목으로 변환하는 호환성 계층을 개발했습니다. 이 호환성 계층은 일시적이며 향후 제거될 예정입니다. 따라서 이 가이드를 주의 깊게 읽고 사람의 감독 하에 구성을 마이그레이션하는 것이 좋습니다.

KSM(Kube State Metrics) 구성

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

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 파일의 루트에서 "별칭 지정"되었으며 더 이상 사용할 수 없습니다.

  • 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-kuberneteslocalhost 및 일반 http를 사용하여 kubelet에 연결할 수 있기 때문에 필요합니다. 보안상의 이유로 더 이상 그렇지 않으므로 지금부터 두 플래그를 모두 지정해야 합니다.

Kubernetes에서 호스트 내 통합을 구성하는 방법에 대한 자세한 내용은 Kubernetes 에서 서비스 모니터링 페이지를 확인하세요.

기타 차트 값

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

  • runAsUser 포드에 직접 템플릿화되고 더 많은 구성이 가능한 securityContext 으로 대체되었습니다.
  • resources 이제 세 가지 다른 워크로드를 배포하므로 제거되었습니다. 각각에 대한 리소스는 다음에서 개별적으로 구성할 수 있습니다.
  • ksm.resources
  • kubelet.resources
  • controlPlane.resources
  • 마찬가지로 tolerations 은(는) 세 개로 분할되었으며 이전 항목은 더 이상 유효하지 않습니다.
  • ksm.tolerations
  • kubelet.tolerations
  • controlPlane.tolerations
  • 세 가지 모두 기본값은 NoSchedule 에 대한 모든 값을 허용하고 NoExecute
  • image 모든 하위 키는 현재 배포된 세 개의 이미지 각각에 대한 개별 섹션으로 대체되었습니다.
  • images.forwarder.* 인프라 에이전트 전달자를 구성합니다.
  • images.agent.* 인프라-에이전트 및 온-호스트 통합을 번들하는 이미지를 구성합니다.
  • images.integration.* k8s 데이터 스크래핑을 담당하는 이미지를 구성합니다.

v2에서 업그레이드

Kubernetes values-newrelic.yaml 버전 2( nri-bundle 차트 버전 3.x에 포함됨)에서 업그레이드하려면 원하는 및 구성. 예를 들어 다음과 같은 명령을 사용하여 이전에 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

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

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

중요

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

Copyright © 2023 New Relic Inc.

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