• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

Kubernetes エージェント オペレーター

プレビュー

この機能はまだ開発中ですが、ぜひお試しください。

Kubernetesエージェント オペレーターは、 Kubernetesエージェント とともにAPMインストゥルメントを自動化することで、 Kubernetes環境のフルスタックの可用性を合理化します。 APM自動インストゥルメンテーションを有効にすると、開発者はAPMエージェントを手動で管理する必要がなくなります。 Kubernetesエージェント オペレーターは、 APMエージェントを自動的にインストール、アップグレード、削除します。

現在、Java、.NET、Node.jsをサポートしています。 Python、Ruby に加え、追加言語 (PHP および Go) も開発中です。

あなたが始める前に

オペレーターをインストールする前に、次の点を確認してください。

cert-managerの配電

証明書マネージャーの依存関係をインストールするには、次のコマンドを実行します。

bash
$
helm repo add jetstack https://charts.jetstack.io
$
helm install cert-manager jetstack/cert-manager \
>
--namespace cert-manager \
>
--create-namespace \
>
--set crds.enabled=true

Kubernetesエージェントオペレーターのインストレーション

ニーズに応じて、エージェント オペレーターを単独でインストールするか、K8s インテグレーションと一緒にインストールするかを選択できます。 完全なスタック監視エクスペリエンスを活用するために、K8s インテグレーションと一緒にインストールすることを強くお勧めします。

フルスタックの監視可能性エクスペリエンス 全体を活用するために、Kubernetes インテグレーションと一緒にインストールすることを強くお勧めします。

Kubernetesインテグレーションに加えてインストレーションをバンドルする(推奨)

Kubernetesエージェント オペレーター チャートは、 完全な可用性を実現するために必要なすべてのコンポーネントのインストレーションを管理する nri-bundleKubernetes チャートの一部として統合されています。

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=<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.image.tag=${KSM_IMAGE_VERSION} \
>
  --set kube-state-metrics.enabled=true \
>
  --set kubeEvents.enabled=true \
>
  --set k8s-agents-operator.enabled=true \
>
--create-namespace

スタンドアロン インストール

Kubernetesエージェント オペレーターをデフォルト設定でインストールするには、次のコマンドを実行します。

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

設定オプションの完全なリストについては、 READMEチャートを参照してください。

オペレータを有効にするネームスペースの設定

各ネームスペースでは、その内部でのアプリケーションデプロイの自動インストゥルメンテーションを有効にするために 2 段階のプロセスが必要です。

  1. オペレーターに測定させるネームスペースごとに、有効なNew Relic取り込みライセンスを含むシークレットを作成します。

    bash
    $
    kubectl create secret generic newrelic-key-secret \
    >
    --namespace <NAMESPACE_TO_MONITOR> \
    >
    --from-literal=new_relic_license_key=<YOUR_NEW_RELIC_INGEST_LICENSE_KEY>

    <YOUR_NEW_RELIC_INGEST_LICENSE_KEY> を有効なNew Relicライセンスキーに置き換えてください。

  2. 自動計装するネームスペースごとに次の CRD を適用します。 次のコマンドを実行します:

    bash
    $
    kubectl apply -f <YOUR_YAML_FILE> -n <NAMESPACE_TO_MONITOR>

    適用する YAML ファイル:

    apiVersion: newrelic.com/v1alpha1
    kind: Instrumentation
    metadata:
    labels:
    app.kubernetes.io/name: instrumentation
    app.kubernetes.io/created-by: k8s-agents-operator
    name: newrelic-instrumentation
    spec:
    java:
    image: newrelic/newrelic-java-init:latest
    # env:
    # Example New Relic agent supported environment variables
    # - name: NEW_RELIC_LABELS
    # value: "environment:auto-injection"
    # Example overriding the appName configuration
    # - name: NEW_RELIC_POD_NAME
    # valueFrom:
    # fieldRef:
    # fieldPath: metadata.name
    # - name: NEW_RELIC_APP_NAME
    # value: "$(NEW_RELIC_LABELS)-$(NEW_RELIC_POD_NAME)"
    nodejs:
    image: newrelic/newrelic-nodejs-init:latest
    python:
    image: newrelic/newrelic-python-init:latest
    dotnet:
    image: newrelic/newrelic-dotnet-init:latest
    ruby:
    image: newrelic/newrelic-ruby-init:latest

アプリケーションで自動APMインストゥルメンテーションを有効にする

Kubernetesエージェント オペレーターは、ポッドをスケジュールするときに言語固有のアノテーションを探して、どのアプリケーションを監視するかを判断します。

現在サポートされている注釈を参照してください:

bash
$
instrumentation.newrelic.com/inject-java: "true"
$
instrumentation.newrelic.com/inject-nodejs: "true"
$
instrumentation.newrelic.com/inject-python: "true"
$
instrumentation.newrelic.com/inject-dotnet: "true"
$
instrumentation.newrelic.com/inject-ruby: "true"

Javaエージェントを計装するためのアノテーション付きのエージェントの例を参照してください。

apiVersion: apps/v1
kind: Deployment
metadata:
name: spring-petclinic
spec:
  selector:
    matchLabels:
      app: spring-petclinic
  replicas: 1
  template:
    metadata:
      labels:
        app: spring-petclinic
      annotations:
        instrumentation.newrelic.com/inject-java: "true"
    spec:
      containers:
        - name: spring-petclinic
          image: ghcr.io/pavolloffay/spring-petclinic:latest
          ports:
            - containerPort: 8080
          env:
          - name: NEW_RELIC_APP_NAME
            value: spring-petclinic-demo

アプリケーション内のAPMインストゥルメンテーションをアップグレードする

デフォルトでは、 Kubernetesエージェント オペレーターは、対応するAPMエージェントの利用可能な最新バージョンを自動的にインストールします。

アプリケーションがモニターされると、ユーザーがアップグレードを選択しない限り、新しいバージョンに自動的にアップグレードされることはありません。 ポッドを再デプロイするか、デプロイメントを再起動するだけで、アプリケーションを新しいバージョンにシームレスにアップグレードできます。

アプリケーション内のAPMインストゥルメンテーションを削除します

アプリケーション内のAPMインストゥルメンテーションを削除するには、 Kubernetesエージェント オペレーターによって使用されるアノテーションを削除する必要があります。 数秒後、 APMエージェントが自動的に削除されたことがわかります。

Kubernetes エージェント オペレーターの更新

バンドル インストレーション

次の構文を使用して、nri-bundle チャートのアップグレードを実行します。

bash
$
k8s-agents-operator.enabled=true

スタンドアロン インストール

helm upgradeコマンドを実行して、Kubernetes エージェント オペレーターの新しいバージョンに更新します。

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

Kubernetes エージェント オペレーターのアンインストール

バンドル インストレーション

nri-bundle チャートをアンインストールするか、オペレーターのみを削除する場合は、次の引数で helm upgrade を実行します。

bash
$
k8s-agents-operator.enabled=false

スタンドアロン インストール

Kubernetes エージェント オペレーターをアンインストールして削除するには、次のコマンドを実行します。

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

データを見つけて使用する

  • アプリケーションのサイトを取得し、 APMサマリーページを使用して問題を解決します。
  • Kubernetes の概要ページを確認してください。 モニターアプリケーションのコンテキストでKubernetesインサイト を提供します。

よくあるご質問

トラブルシューティング

アプリケーションがインストゥルメントされていない場合は、次の点を確認してください。

  • オペレーターをインストールした後は、必ず再デプロイまたは新しいアプリケーションをデプロイしてください。 オペレータはクラスタ内で新規アプリケーションを自動導入するだけなので注意してください。

  • シークレットとインストゥルメンテーション CRD がアプリのネームスペースにインストールされていることを確認します。

    bash
    $
    kubectl get secrets -n <NAMESPACE>
    $
    kubectl get instrumentation -n <NAMESPACE>
  • ポッドに自動インストゥルメンテーションを有効にする注釈があることを確認します。

    bash
    $
    kubectl get pod <POD> -n <NAMESPACE> -o jsonpath='{.metadata.annotations}'
  • エージェント オペレーター ポッドからログを取得します。

    bash
    $
    kubectl logs <AGENT_OPERATOR_POD> -n newrelic
  • initコンテナがアプリケーションのポッド内に挿入され、正常に実行されたことを確認します。

    bash
    $
    kubectl describe pod <POD> -n <NAMESPACE>

サポート

Kubernetesエージェントオペレーターは現在、Java、.NET、Node.jsなどのAPMエージェントの最新バージョンをサポートしています。 Python と Ruby。

オペレーターが一般公開されると、各APMエージェントの最新の 3 つのバージョンがサポートされるようになります。

Kubernetes エージェント オペレーターの問題の場合:

Copyright © 2024 New Relic株式会社。

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