このページでは、 クラスタエージェント の Helm チャートを使用してインフラストラクチャの可視性( InfraViz) を展開する方法について説明します。

Helm は Kubernetes のパッケージマネージャです。Helm チャートは、一連の Kubernetes リソースについて説明するファイルのコレクションです。 クラスタエージェント の Helm チャートは、Splunk AppDynamics オペレータと InfraViz を展開するのに便利な方法です。

この展開では、Windows コンテナはサポートされていません。

要件

  • マシン エージェント バージョン 21.9.0 以降

  • NetViz バージョン 21.3.0 以降

  • コントローラバージョン 20.6.0 以降

  • クラスタエージェントの Helm チャートが Helm 3.0 と互換性を持っている

  • クラスタエージェントの Helm チャートを使用して InfraViz をインストールするには、クラスタエージェントの Helm チャートのバージョンが 1.1.0 以降である必要があります。クラスタエージェントの Helm チャートのより古いバージョン(v0.1.19 以前)は機能しません。
  • Kubernetes が 1.25 以降の環境では、PodSecurityPolicy は K8s 1.25 以降から削除されます(https://kubernetes.io/blog/2022/08/23/kubernetes-v1-25-release/#pod-security-changes )。ポッドのセキュリティ制限は、ポッドセキュリティ標準レベルを使用して名前空間レベル(https://kubernetes.io/docs/concepts/security/pod-security-admission/ )で適用されるようになりました。そのため、インフラストラクチャの可視性ポッドが実行されている名前空間については、レベルを [Privileged] として設定する必要があります。
  • Kubernetes のバージョンが 1.25 よりも前で、PodSecurityPolicies が特権ポッドなど、特定のポッド セキュリティ コンテキスト設定をブロックする環境では、infraviz.yaml ファイルを編集する前に infraviz-pod-security-policy.yaml を展開する必要があります。PodSecurityPolicy を appdynamics-infraviz serviceaccount に明示的にアタッチする必要があります。
  • OpenShift SecurityContextConstraints が特権ポッドなど、特定のポッド セキュリティ コンテキスト設定をブロックする環境では、infraviz.yaml ファイルを編集する前に infraviz-security-context-constraint-openshift.yaml を展開する必要があります。

クラスタへの インフラストラクチャの可視性 のインストール

  1. 次のコマンドを使用して、 A ppDynamics エージェントに関連する、以前にインストールされたすべての CRD を削除します。

    $ kubectl get crds
    $ kubectl delete crds <crd-names>
    CODE
  2. チャートリポジトリを Helm に追加します。

    $ helm repo add appdynamics-cloud-helmcharts https://appdynamics.jfrog.io/artifactory/appdynamics-cloud-helmcharts/
    CODE
  3. クラスタで appdynamics の名前空間を作成します。

    $ kubectl create namespace appdynamics
    CODE
  4. この values-ca1.yaml の例で、Helm 値のファイルを作成します。 コントローラのログイン情報を使用して controllerInfo プロパティを更新します。

    Infraviz および netviz プロパティを更新します。enableMasters enableContainerHostId enableServerViz などの 使用可能なプロパティの詳細については、「InfraViz 構成設定 」を参照してください。

    values-ca1.yaml

    # To install InfraViz
    installInfraViz: true
    
    
    # Controller info
    controllerInfo:
    	url: https://<controller-url>:443
    	account: <appdynamics-controller-account>
    	username: <appdynamics-controller-username>
    	password: <appdynamics-controller-password>
    	accessKey: <appdynamics-controller-access-key>
    	globalAccount: <appdynamics-controller-global-account>
    
    
    # InfraViz config
    infraViz:
      nodeOS: "linux"
      enableMasters: false
      stdoutLogging: false
      enableContainerHostId: true
      enableServerViz: true
      enableDockerViz: false
      runAsUser: <UID of runAsUser>
      runAsGroup: 1001    # Netviz config
    netViz:
      enabled: true
      netVizPort: 3892
    YML

    使用可能なオプションの詳細については、「values.yaml の設定オプション」を参照してください。また、次のコマンドを使用して、Helm チャートリポジトリから values.yaml のコピーをダウンロードできます。

    helm show values appdynamics-charts/cluster-agent
    CODE
  5. InfraViz appdynamics 名前空間に展開します。

    $ helm install -f ./values-ca1.yaml "< my-cluster-agent-helm-release >" appdynamics-charts/cluster-agent --namespace=appdynamics
    CODE

設定オプション

設定オプション

説明

必須

installInfraViz

InfraViz のインストールに使用されます。これは true に設定する必要があります。

必須(デフォルトは false)

イメージ設定オプション( values.yaml 内の imageInfo キーの下のオプション)

imageInfo.operatorImage

<registryUrl>/<registryAccount>/cluster-agent-operator 形式のオペレータのイメージアドレス

オプション(デフォルトは Docker Hub イメージ)

imageInfo.operatorTag

オペレータのイメージタグ/バージョン

オプション(デフォルトは 22.1.0

imageInfo.imagePullPolicy

オペレータポッドのイメージプルポリシー

オプション

imageInfo.machineAgentImage

<registryUrl>/<registryAccount>/machine-agent 形式のマシンエージェントのイメージアドレス

オプション(デフォルトは Docker Hub イメージ)

imageInfo.machineAgentTag

マシンエージェントのイメージタグ/バージョン

オプション(デフォルトは latest

ImageInfo.netVizImage

<registryUrl>/<registryAccount>/machine-agent-netviz 形式の NetViz エージェントのイメージアドレス

オプション(デフォルトは Docker Hub イメージ)

ImageInfo.netvizTag

NetViz エージェントのイメージタグ/バージョン

オプション(デフォルトは latest)

コントローラ設定オプション(values.yaml controllerInfo キーの下の設定オプション)

controllerInfo.accessKey

コントローラのアクセスキー

必須

controllerInfo.globalAccount

コントローラのグローバルアカウント

必須

controllerInfo.account

コントローラアカウント

必須

controllerInfo.authenticateProxy

プロキシが認証を必要とする場合は true または false

オプション

controllerInfo.customSSLCert

PEM 形式の SSL 証明書の Base64 エンコーディング

オプション

controllerInfo.password

コントローラのパスワード

自動インストゥルメンテーションが有効になっている場合にのみ必須です。

controllerInfo.proxyPassword

プロキシ認証のパスワード

オプション

controllerInfo.proxyUrl

コントローラが一部のプロキシの背後にある場合のプロキシ URL

オプション

controllerInfo.proxyUser

プロキシ認証のユーザー名

オプション

controllerInfo.url

コントローラ URL

必須

controllerInfo.username

コントローラのユーザー名

自動インストゥルメンテーションが有効になっている場合にのみ必須です。

controllerInfo.proxyUrl

プロキシサーバーの URL(protocol://domain:port

オプション

controllerInfo.proxyUser

プロキシユーザーのログイン情報(user@password

オプション

RBAC 設定

infravizServiceAccount

InfraViz が使用するサービスアカウント

オプション

createServiceAccount

前述された ServiceAccounts が Helm によって作成される場合は true に設定します

オプション

operatorServiceAccount

Splunk AppDynamics オペレータが使用するサービスアカウント

オプション

NetViz 設定

netViz.resourcesNetViz

ネットワークの可視性(NetViz)コンテナのリソースを設定

オプション

netViz.netVizPort

0 より大きい場合、ネットワークエージェントはマシンエージェントとともにサイドカーに展開されます。デフォルトでは、ネットワークの可視性エージェントはポート 3892 で動作します。

任意

InfraViz 設定

infraViz.appName

クラスタ名としてコントローラ UI に表示されるクラスタの名前。これは、このクラスタ名でクラスタのノードをグループ化するためのフラグです。

任意
infraViz.enableContainerHostId コンテナ名の導出方法を決定するフラグ。true または false を指定します。 必須
infraViz.enableMasters デフォルトでは、ワーカーノードのみがモニタされます。true に設定すると、マスターノードに対してサーバーの可視性が提供されます。管理対象の Kubernetes プロバイダーの場合、マスタープレーンにアクセスできないため、フラグは無効です。 オプション
infraViz.enableServerViz サーバの可視性の有効化 必須
infraViz.enableDockerViz Docker の可視性の有効化 必須
infraViz.eventServiceUrl イベント サービス エンドポイント。 任意
infraViz.runAsUser

コンテナプロセスのエントリポイントを実行する UID(ユーザー ID)。UID を指定しない場合、これはデフォルトで、イメージで指定されたユーザー ID になります。

他の UID で実行する必要がある場合は、グループ ID を変更せずに、runAsUser の UID を変更します。

オプション

infraViz.logProperties.logLevel

ロギングの冗長性のレベル。有効なオプションは、info または debug. です。

オプション

infraViz.metricProperties.metricsLimit

マシンエージェントがコントローラに送信するメトリックの最大数。

オプション

infraViz.propertyBag

その他のマシン エージェント パラメータを含む文字列

オプション

infraViz.runAsGroup コンテナプロセスのエントリポイントを実行する GID(グループ ID)。ID を指定しない場合、これはイメージで指定された UID を使用します。

docker.io/appdynamics/machine-agent

docker.io/appdynamics/machine-agent-analytics:latest

オプション
infraViz.stdoutLogging ログをファイルに保存するか、コンソールにリダイレクトするかを決定します。 オプション

infraViz.uniqueHostId

Splunk AppDynamics の一意のホスト ID。有効なオプションは、spec.nodeNamestatus.hostIP です。

オプション

InfraViz のポッド設定

infravizPod.nodeSelector

InfraViz のポッド仕様の Kubernetes ノードセレクタフィールド。

オプション

infravizPod.resources

InfraViz のポッド仕様の Kubernetes CPU およびメモリのリソース。

オプション

infravizPod.imagePullPolicy

InfraViz ポッドのイメージプルポリシー。

オプション

infravizPod.imagePullSecret プライベート Docker レジストリまたはリポジトリからイメージを取得する場合の認証に使用されるクレデンシャルファイル。 オプション
infravizPod.priorityClassName ポッドの仕様で優先順位を設定するために使用される、ポッド優先順位クラスの名前。 オプション
infravizPod.env 環境変数のリスト。 オプション
infravizPod.overrideVolumeMounts volumeMounts のリスト。 オプション
infravizPod.tolerations ノードに関連付けられている taint に基づく許容値のリスト。 オプション

オペレータのポッド設定

operatorPod.nodeSelector

Splunk AppDynamics オペレータのポッド仕様の Kubernetes ノードセレクタフィールド

オプション

operatorPod.tolerations

Splunk AppDynamics オペレータのポッド仕様の Kubernetes 許容フィールド

オプション

operatorPod.resources

Splunk AppDynamics オペレータポッド仕様の Kubernetes CPU およびメモリのリソース

オプション

機密データのベストプラクティス

複数の values.yaml ファイルを使用して、機密データを個別の values.yaml ファイルに分けることを推奨します。これらの値の例を次に示します。

  • controllerInfo.password
  • controllerInfo.accessKey
  • controllerInfo.customSSLCert
  • controllerInfo.proxyPassword

values のファイルはデフォルトの構造(values.yaml )に従い、機密性の低い設定プロパティのファイルを簡単に共有し、機密性の高い値を安全に保ちます。

Default user-values.yaml File Example

user-values.yaml

# To install InfraViz
installInfraViz: true

imageInfo:
 operatorImage: docker.io/appdynamics/cluster-agent-operator
 operatorTag: 22.1.0
 imagePullPolicy: Always            # Will be used for operator pod
 machineAgentImage: docker.io/appdynamics/machine-agent
 machineAgentTag: latest
 netVizImage: docker.io/appdynamics/machine-agent-netviz
 netvizTag: latest

controllerInfo:
 url: https://<controller-url>:443
 account: <appdynamics-controller-account>
 username: <appdynamics-controller-username>
 password: <appdynamics-controller-password>
 accessKey: <appdynamics-controller-access-key>

 infravizServiceAccount: appdynamics-infraviz-ssl # Can be any valid name
 operatorServiceAccount: appdynamics-operator-ssl # Can be any valid name
YML

user-values-sensitive.yaml

controllerInfo:
  password: welcome
  accessKey: abc-def-ghi-1516
YML

Helm チャートをインストールする場合は、複数の -f パラメータを使用してファイルを参照します。

helm install -f ./user-values.yaml -f ./user-values-sensitive.yaml "<my-cluster-agent-helm-release>" appdynamics-charts/cluster-agent --namespace ca-appdynamics
BASH

クラスタへのクラスタエージェントおよびインフラストラクチャの可視性のインストール

クラスタエージェントとインフラストラクチャの可視性を同時にインストールするには、「クラスタへのインフラストラクチャの可視性のインストール」に記載されている手順と同じ手順に従い、以下の更新を行います。

  1. yaml ファイルで以下のように指定します(values.ca1 など):

    installClusterAgent: true
    installInfraViz: true
    CODE

  2. コントローラのログイン情報を使用して controllerInfo プロパティを更新します。
    clusterAgent プロパティを更新して、モニターする名前空間とポッドを設定します。nsToMonitor nsToMonitorRegex nsToExcludeRegex などの使用可能なプロパティの詳細については、「クラスタエージェントの設定」を参照してください。
    InfraViz および NetViz プロパティを更新します。values.yaml の、enableMastersenableContainerHostIdenableServerViz などの使用可能なプロパティの詳細については、「InfraViz 構成設定」を参照してください。