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

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

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

문제 신고

Kubernetes APM 자동 연결

Kubernetes APM Kubernetes 이전에 에이전트 Kubernetes APM 연산자로 알려진 자동 Kubernetes 연결은 에이전트 배포와 함께 배포를 자동화하여 환경에 대한 풀스택 옵저버빌리티를 간소화합니다. 자동 측정을 활성화하면 개발자는 더 이상 APM 에이전트를 수동으로 관리할 필요가 없습니다. Kubernetes APM 자동 연결은 APM 에이전트를 자동으로 설치, 업그레이드 및 제거합니다.

현재 Java, .NET, Node.js를 지원합니다 . 파이썬, 루비, PHP.

작동 원리

  • 설치 시 MutatingWebHook는 노드에 구현하다, 배포하다 파드에 대한 API 요청을 가로채는 데 관여하게 됩니다.

  • 지정된 설정을 반영하여 파드 사양을 변경하여 NR init컨텍스트 및 환경 변수를 추가합니다.

  • 파드 설립 이후, 뉴렐릭 APM 에이전트는 그 안에 수용된 기능에 원활하게 통합됩니다.

Diagram showing how APM agents are auto injected

시작하기 전에

오퍼레이터를 설치하기 전에 다음 사항을 확인하십시오.

설치

요구 사항에 따라 Kubernetes APM 자동 연결을 Kubernetes 통합과 함께 또는 독립적으로 설치할 수 있습니다.

전체 풀스택 옵저버빌리티 경험을 활용하려면 통합과 함께 설치하는 것이 좋습니다.Kubernetes

Kubernetes 통합에 추가로 번들 설치(권장)

Kubernetes APM 자동 연결 차트는 nri-bundle 차트의 일부로, 전체 Kubernetes 옵저버빌리티를 활성화하는 데 필요한 모든 구성 요소의 설치를 관리합니다.

k8s-agents-operator.enabled=true 파라미터를 helm 명령에 추가하거나 values.yaml 파일에 포함하세요. Helm 사용에 대한 자세한 내용은 Kubernetes 통합 설치 페이지를 참조하거나 nri-bundle 차트를 확인하세요.

시위를 사용하여 Helm 명령 샘플을 확인하세요.

bash
$
helm repo add newrelic https://helm-charts.newrelic.com
$
$
helm upgrade --install newrelic-bundle newrelic/nri-bundle \
>
--set global.licenseKey=YOUR_NEW_RELIC_INGEST_LICENSE_KEY \
>
--set global.cluster=CLUSTER_NAME \
>
--namespace=newrelic \
>
--set newrelic-infrastructure.privileged=true \
>
--set global.lowDataMode=true \
>
--set kube-state-metrics.enabled=true \
>
--set kubeEvents.enabled=true \
>
--set k8s-agents-operator.enabled=true \
>
--create-namespace

독립형 설치

기본 설정으로 Kubernetes APM 자동 연결을 설치하려면 다음 명령을 실행하세요.

bash
$
helm repo add k8s-agents-operator https://newrelic.github.io/k8s-agents-operator
$
helm upgrade --install k8s-agents-operator k8s-agents-operator/k8s-agents-operator \
>
--namespace newrelic \
>
--create-namespace \
>
--set licenseKey=YOUR_NEW_RELIC_INGEST_LICENSE_KEY

설정 옵션의 전체 목록을 보려면 README 차트를 참조하세요.

자동 계측 구성

클러스터에 APM 자동 연결이 모두 설정되면 다음 단계는 이를 작동시키는 데 필요한 구성을 롤아웃하는 것입니다. 여기에는 클러스터에서 최소한 하나의 계측 사용자 정의 리소스(CR)가 활성화되어 있어야 합니다.

계측 CR을 사용하면 다음을 매핑할 수 있습니다.

  • 계측기 이름 CR
  • 계측 CR을 적용할 위치( podLabelSelectornamespaceLabelSelector 덕분에)
  • APM 에이전트(CR당 하나)
  • APM 에이전트 버전
  • APM config 수행, (env vars)
  • 라이선스 키 (선택 사항)

매니페스트 파일은 APM 자동 연결을 설치한 것과 동일한 네임스페이스(기본적으로 newrelic )에 삽입되어야 합니다.

bash
$
kubectl apply -f ./values.yaml -n newrelic

선택기를 사용하는 방법

계측 CR이 APM 에이전트를 주입하는 시점을 알려면 선택기를 사용해야 합니다. 함께 사용할 수 있는 레이블 선택기가 2개 있습니다(논리적 AND(&&) 연산자로 작동) 또는 필요에 따라 분리하여 사용할 수 있습니다.

  • PodLabelSelector APM 자동 연결에 어떤 파드를 데이터베이스화해야 하는지 알려줍니다.

    matchLabel 사용한 예(특정 태그와 값이 포함된 파드 선택):

    ...
    podLabelSelector:
    matchLabels:
    app.kubernetes.io/name: flask-hello-world
    ...
  • NameSpaceLabelSelector 지우스페이스 수준에서 자동 계측된 패드를 정의합니다.

    matchExpressions 사용한 예(특정 태그와 값을 포함하는 네임스페이스 선택):

    ...
    namespaceLabelSelector:
    matchExpressions:
    - key: "kubernetes.io/metadata.name"
    operator: "In"
    values: ["backend"]
    ...

    kubernetes.io/metadata.name 라벨을 적용하는 것은 네임스페이스 이름을 기준으로 선택하는 것과 동일하다는 점에 유의하세요.

두 선택기 모두 matchLabelmatchExpressions 지원합니다.

APM 에이전트

계측 CR 내에서 APM 에이전트와 해당 버전을 지정해야 합니다. 사용 가능한 최신 기능을 최대한 활용하려면 최신 버전을 사용하는 것이 좋습니다.

언어

영상

사용 가능한 버전

닷넷

newrelic-dotnet-init:latest

.그물

자바

newrelic-java-init:latest

자바

노드제이에스

newrelic-node-init:latest

마디

파이썬

newrelic-python-init:latest

파이썬

루비

newrelic-ruby-init:latest

루비

페프

newrelic-php-init:latest

PHP

이 예를 보세요:

...
spec:
agent:
language: dotnet
image: newrelic/newrelic-dotnet-init:latest
...

APM 설정 방법,

로그 CR은 APM 에이전트의 설정을 간소화하기 위해 패드에 환경 변수를 주입하는 기능을 제공합니다. 이 예를 보세요:

...
spec:
env:
# Example overriding the appName configuration by using a label of the pod
- name: NEW_RELIC_APP_NAME
valueFrom:
fieldRef:
fieldPath: metadata.labels['app.kubernetes.io/name']
...

위의 예에서는 환경 변수를 사용하여 에이전트 설정을 전역적으로 구성하는 방법을 보여드립니다. 사용 가능한 설정 옵션은 각 에이전트의 설정 문서를 참조하세요.

중요

이러한 환경 변수는 앱 배포 매니페스트에 삽입할 수 있습니다.

라이선스 키 (선택 사항)

설치하면 이 생성되고 이것이 기본 라이센스입니다. APM 텔레메트리를 다른 계정으로 보내야 하는 경우 다음 단계를 따르세요.

  • 새 라이선스 키가 포함된 비밀을 생성하려면 다음 명령을 실행하세요.

    bash
    $
    kubectl create secret generic newrelic-key-secret \
    >
    --namespace my-monitored-namespace \
    >
    --from-literal=new_relic_license_key=<NEW RELIC INGEST LICENSE KEY>
  • 계측 CR에서 비밀을 참조하려면 다음 명령을 실행하세요.

    ...
    spec:
    licenseKeySecret: the-name-of-the-custom-secret
    ...

계측 CR 예제

애플리케이션에서 APM 계측 업데이트

기본적으로 Kubernetes APM 자동 연결은 해당 APM 에이전트 의 최신 사용 가능한 버전을 자동으로 설치합니다.

애플리케이션 모니터링이 시작되면 사용자가 업데이트를 선택하지 않는 한 자동으로 새로운 버전으로 업데이트되지 않습니다. 파드를 재배포하거나 배포를 다시 시작하여 기능을 업데이트할 수 있습니다.

애플리케이션에서 APM 계측 제거

애플리케이션에서 APM 계측을 제거하려면 사용된 podLabelSelector 또는 namespaceLabelSelector 내부의 일치하는 레이블 선택기를 변경하거나 계측 CR을 삭제해야 합니다. 그런 다음 배포를 다시 시작합니다. 제거 과정은 몇 초 밖에 걸리지 않습니다.

Kubernetes APM 자동 연결 업데이트

번들 설치

다음 모범 사례를 사용하여 nri-bundle 차트 업데이트를 실행합니다.

bash
$
k8s-agents-operator.enabled=true

독립형 설치

Kubernetes APM 자동 연결의 최신 버전으로 업데이트하려면 helm upgrade 명령을 실행하세요.

bash
$
helm upgrade k8s-agents-operator newrelic/k8s-agents-operator -n newrelic

Kubernetes APM 자동 연결 제거

번들 설치

nri-bundle 차트를 제거하거나 Kubernetes APM 자동 연결만 제거하려면 다음 명령어를 사용하여 helm 업그레이드를 실행합니다.

bash
$
k8s-agents-operator.enabled=false

독립형 설치

Kubernetes APM 자동 연결을 제거하고 삭제하려면 다음 명령을 실행하세요.

bash
$
helm uninstall k8s-agents-operator -n newrelic

데이터 찾기 및 사용

  • APM 요약 페이지를 사용하여 인사이트를 얻고 인시던트를 해결하세요.

  • Kubernetes 요약 페이지를 확인하세요. 이는 모니터의 맥락에서 Kubernetes 인사이트를 제공합니다.

인증서

Kubernetes APM 자동 연결은 원하는 경우 cert-manager 지원할 수 있습니다.

  • cert-manager Helm 차트를 설치하려면 다음 명령을 실행하세요.

    bash
    $
    helm install cert-manager jetstack/cert-manager \
    >
    --namespace cert-manager \
    >
    --create-namespace \
    >
    --set crds.enabled=true
  • values.yaml 파일에서 admissionWebhooks.autoGenerateCert.enabled: falseadmissionWebhooks.certManager.enabled: true 설정합니다. 그런 다음 평소처럼 차트를 설치합니다.

사용 가능한 차트 릴리스

사용 가능한 차트를 보려면 다음 명령을 실행하세요.

bash
$
helm search repo k8s-agents-operator

자주 묻는 질문

문제점 해결

로그가 포함되지 않은 경우 다음을 확인해야 합니다.

  • Kubernetes APM 자동 연결을 설치한 후에는 반드시 재배포하거나 구현하고, 새로운 기능을 구현하세요. 클러스터에서는 자동 계측된 새로운 기능만 구현하다, 배포하다라는 점에 유의하세요.

  • 앱의 네임스페이스에 비밀이 설치되었는지 확인하려면 다음 명령을 실행하세요.

    bash
    $
    kubectl get secrets -n NAMESPACE
  • podLabelSelector 사용할 때 CR을 통한 자동 시스템을 활성화하는 데 필요한 레이블이 파드에 있는지 확인하세요. 마찬가지로 CR 내부에서 namespaceLabelSelector 사용할 때 네임스페이스에 필요한 레이블이 있는지 확인하세요.

    bash
    $
    kubectl get pod POD_NAME -n NAMESPACE -o jsonpath='{.metadata.annotations}'
  • APM 자동 연결 패드에서 로그를 가져오려면 다음 명령을 실행하세요.

    bash
    $
    kubectl logs AGENT_OPERATOR_POD -n newrelic
  • 이 명령을 실행하여 init 컨테이너가 삽입되고 특수 파드 내부에서 성공적으로 실행되었는지 확인하세요.

    bash
    $
    kubectl describe pod POD_NAME -n NAMESPACE

주석이 필요한 이전 버전에서 마이그레이션하는 방법

버전 0.14부터, 작곡을 자동 계측하기 위해 더 이상 작곡 배포 매니페스트 내의 주석이 필요하지 않습니다.

0.14 이전 버전을 모두 제거하고 최신 릴리스 버전을 설치하는 것이 좋습니다. 계측 CR 내의 레이블 선택기를 활용하면 APM 에이전트를 정확하게 배포할 수 있으므로 주석이 필요하지 않습니다.

지원하다

Kubernetes APM 자동 연결은 표준 APM 에이전트 지원 정책에 따라 다음 언어와 해당 언어의 최소 지원 버전을 지원합니다.

  • 자바: 8.12
  • .NET: 10.25
  • 루비: 9.10
  • Node.js: 11.9
  • 파이썬: 9.10
  • PHP: 11.12

문제가 있는 경우:

Copyright © 2024 New Relic Inc.

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