Helm チャートを使用したクラスタエージェントのインストール
このページでは、クラスタエージェントの Helm チャートを使用してクラスタエージェントを展開する方法について説明します。
Helm は Kubernetes のパッケージマネージャです。Helm チャートは、一連の Kubernetes リソースについて説明するファイルのコレクションです。クラスタエージェントの Helm チャートは、Splunk AppDynamics オペレータとクラスタエージェントを展開するのに便利な方法です。クラスタエージェントの Helm チャートを使用して、1 つのクラスタに複数のクラスタエージェントを展開することもできます。これは、単一のクラスタエージェントのポッドモニタリング制限を超える大規模なクラスタで必要になることがあります。「クラスタエージェントの要件およびサポート対象環境」を参照してください。
要件
- クラスタ エージェント バージョン 20.6 以降
- コントローラバージョン 20.6 以降
- クラスタエージェントの Helm チャートが Helm 3.0 と互換性を持っている
-
バージョン v1.1.0 以降のクラスタエージェントの Helm チャートを使用することを推奨します。
-
Splunk AppDynamicsクラスタエージェント 23.2.0 以降および オペレータバージョン 23.2.0 以降をインストールするために、クラスタエージェントの Helm チャートバージョン v1.10.0 以降を使用します。
-
Splunk AppDynamicsクラスタエージェント 21.12.0 以降および オペレータバージョン 21.12.0 以降をインストールするために、クラスタエージェントの Helm チャートバージョン v1.1.0 以降を使用します。
-
Splunk AppDynamics古いメジャーバージョンのクラスタエージェントの Helm チャート(0.1.19 以前)を使用して、バージョン 21.10.0 以前のクラスタエージェントおよびバージョン 0.6.11 以前のオペレータをインストールできます。
クラスタへの単一のクラスタエージェントのインストール
-
次のコマンドを使用して、Splunk AppDynamics エージェントに関連する、以前にインストールされたすべての CustomResourceDefinition(CRD)を削除します。
$ kubectl get crds $ kubectl delete crds <crd-names> -
チャートリポジトリを Helm に追加します。
helm repo add appdynamics-cloud-helmcharts https://appdynamics.jfrog.io/artifactory/appdynamics-cloud-helmcharts/ -
クラスタで appdynamics の名前空間を作成します。
kubectl create namespace appdynamics values-ca1.yaml の例では、Helm 値ファイルを作成します。コントローラのログイン情報を使用して controllerInfo プロパティを更新します。clusterAgent プロパティを更新して、モニターする名前空間とポッドを設定します。使用可能なプロパティ nsToMonitorRegex、nsToExcludeRegex、および podFilter の詳細については、「クラスターエージェントの設定」を参照してください。
values-ca1.yaml
# To install Cluster Agent installClusterAgent: 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> # Cluster agent config clusterAgent: nsToMonitorRegex: dev-.*注: クラスタエージェント 24.9 以降では、ポッドの削除時に関連ノードを履歴としてマークするためのサーバーモニタリングユーザーのログイン情報または API ユーザーログイン情報は必要なくなりました。ポッドが削除されると、コントローラの関連ノードは自動的に履歴としてマークされます。使用可能なオプションの詳細については、「values.yaml の設定オプション」を参照してください。また、次のコマンドを使用して、Helm チャートリポジトリから values.yaml のコピーをダウンロードできます。helm show values appdynamics-cloud-helmcharts/cluster-agent- (オプション)複数のクラスターエージェントで単一のクラスターをモニターする必要がある場合は、ターゲットアロケータを設定します。オペレータがクラスターエージェントのレプリカを作成できるようにするには、values-ca1.yaml ファイルで、クラスタエージェントのレプリカの数を使用してターゲットアロケータを有効にします。ターゲットアロケータの詳細については、「ターゲットアロケータ」を参照してください。values-ca1.yaml
... # Cluster agent config clusterAgent: nsToMonitorRegex: dev-.* #Instrumentation config instrumentationConfig: enabled: false # Target allocator Config targetAllocator: enabled: true clusterAgentReplicas: 3 autoScaling enabled: false #false by default replicaProfile: Default maxClusterAgentReplicas: 12 scaleDown: stabilizationWindowSeconds: 86400 #In Seconds # Target Allocator pod specific properties targetAllocatorPod: imagePullPolicy: "" imagePullSecret: "" priorityClassName: "" nodeSelector: {} tolerations: [] resources: limits: cpu: "500m" memory: "500Mi" requests: cpu: "200m" memory: "200Mi" labels: {} securityContext: {} - (オプション)コントローラアクセスキーに基づいてシークレットを作成します。create-secret-accesskey
kubectl -n appdynamics create secret generic cluster-agent-secret --from-literal=controller-key='<access-key>' --from-literal=api-user='<username@account:password>' -
クラスタ(通常は kube-system 名前空間に配置)に Kubernetes metrics-server をインストールしていない場合は、値ファイルで install.metrics-server を true に設定し、サブチャートを呼び出してインストールします。
install: metrics-server: true注: install.metrics-server を設定すると、--namespace フラグが付いた名前空間に metrics-server がインストールされます。この名前空間は、クラスタエージェントと同じです。 -
クラスタエージェントを appdynamics 名前空間に展開します。
helm install -f ./values-ca1.yaml "<my-cluster-agent-helm-release>" appdynamics-cloud-helmcharts/cluster-agent --namespace=appdynamics
自動インストルメンテーションの有効化
クラスタエージェントが正常にインストールされたことを確認したら、値 YAML ファイルの instrumentationConfig セクションに設定を追加して、自動インストルメンテーションを有効にできます。この例では、instrumentationConfig.enabled が true に設定され、複数の instrumentationRules が定義されています。「クラスタエージェントを使用したアプリケーションの自動インストルメンテーション」を参照してください。
# To install Cluster Agent
installClusterAgent: true
# AppDynamics 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>
# Cluster agent config
clusterAgent:
nsToMonitorRegex: ecom|books|groceries
instrumentationConfig:
enabled: true
instrumentationMethod: Env
nsToInstrumentRegex: ecom|books|groceries
defaultAppName: Ecommerce
tierNameStrategy: manual
enableInstallationReport: false
imageInfo:
java:
image: "docker.io/appdynamics/java-agent:latest"
agentMountPath: /opt/appdynamics
imagePullPolicy: Always
instrumentationRules:
- namespaceRegex: groceries
language: dotnetcore
tierName: tier
imageInfo:
image: "docker.io/appdynamics/dotnet-core-agent:latest"
agentMountPath: /opt/appdynamics
imagePullPolicy: Always
- namespaceRegex: books
matchString: openmct
language: nodejs
imageInfo:
image: "docker.io/appdynamics/nodejs-agent:20.5.0-alpinev10"
agentMountPath: /opt/appdynamics
imagePullPolicy: Always
analyticsHost: <hostname of the Analytics Agent>
analyticsPort: 443
analyticsSslEnabled: true自動インストルメンテーションの設定が追加された values-ca1.yaml ファイルを保存したら、Helm チャートをアップグレードする必要があります。helm upgrade -f ./ca1-values.yaml "<my-cluster-agent-helm-release>" appdynamics-cloud-helmcharts/cluster-agent --namespace appdynamics設定オプション
| 設定オプション | 説明 | 必須 |
|---|---|---|
installClusterAgent | クラスタエージェントのインストールに使用されます。これは true に設定する必要があります。 | オプション(デフォルトは true) |
| イメージ設定オプション(values.yaml 内の imageInfo キーの下にある設定オプション) | ||
imageInfo.agentImage | クラスタエージェントのイメージアドレス(<registryUrl>/<registryAccount>/<project> 形式) | オプション(デフォルトは Docker ハブイメージ) |
imageInfo.agentTag | クラスタエージェントのイメージタグ/バージョン | オプション(デフォルトは最新) |
imageInfo.operatorImage | オペレータのイメージアドレス(<registryUrl>/<registryAccount>/<project> 形式) | オプション(デフォルトは Docker ハブイメージ) |
imageInfo.operatorTag | オペレータのイメージタグ/バージョン | オプション(デフォルトは最新) |
imageInfo.imagePullPolicy | オペレータポッドのイメージプルポリシー | オプション |
| カスタム Kubernetes API サーバー設定オプション(values.yaml の customKubeconfig キーの下にある設定オプション) | ||
| イネーブル化 | customKubeconfig パラメータを有効にします。デフォルトでは、値は false に設定されています。Kubernetes API サーバーを使用するには、このパラメータを true に設定します。 | オプション |
| サーバ | クラスタの Kubernetes API サーバーの URL。 | customKubeconfig が有効になっている場合は必須です。 |
| cluster | クラスタの名前。 | customKubeconfig が有効になっている場合は必須です。 |
| user | Kubernetes サーバー API にアクセスするためのユーザー名。 | customKubeconfig が有効になっている場合は必須です。 |
| コントローラ設定オプション(values.yaml の controllerInfo キーの下にある設定オプション) | ||
controllerInfo.accessKey | コントローラのアクセスキー | 必須 注: アクセスキーに基づいてアクセスキーシークレットを作成した場合、これは必要ありません。「シークレットの作成」を参照してください。 |
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 | コントローラのユーザー名 | コントローラからのローカルユーザーのユーザー名。 自動インストルメンテーションが有効になっている場合にのみ必須です。 |
| クラスターエージェント設定(values.yaml の clusterAgent キーの下にある設定オプション) 注: OpenShift バージョンが 4.14 より新しい場合は、securityContext 内のすべての子パラメータが、セキュリティコンテキスト制約(SCC)で概説されている許容値に基づいて指定されていることを確認します。Red Hat OpenShift ドキュメントの「セキュリティコンテキスト上の制約」を参照してください。 たとえば、RunAsUser プロパティを使用する場合、ユーザー ID(UID)は許容範囲である必要があります。UID の SCC の許容範囲は 1000 ~ 9001 です。したがって、RunAsUser 値はこの範囲内でのみ追加できます。他のセキュリティ コンテキスト パラメータについても同様です。 | ||
| clusterAgent.appName | クラスタの名前。クラスタ名としてコントローラ UI に表示されます。 | 必須 |
| clusterAgent.eventUploadInterval | Kubernetes の警告および状態変更イベントがコントローラにアップロードされる頻度(秒単位)。「Kubernetes イベントのモニター」を参照してください。 | オプション |
| clusterAgent.httpClientTimeout | コントローラから応答を受信しなかった場合にサーバコールが終了するまでの秒数。 | オプション |
| clusterAgent.imagePullSecret | プライベート Docker レジストリまたはリポジトリからイメージをプルする場合の認証に使用されるクレデンシャルファイル。Docker レジストリ構成に基づいて、クラスタエージェントのイメージをプルする場合に Splunk AppDynamics オペレータが使用するシークレットファイルの作成が必要になる場合があります。「コマンドラインでログイン情報を入力してシークレットを作成する」を参照してください。 | オプション |
| clusterAgent.instrumentationMaxPollingAttempts | クラスタエージェントがインストルメンテーションのロールアウトが成功したかどうかをチェックしてから失敗とマークするまでの最大回数。 | オプション |
| clusterAgent.logProperties.logFileSizeMb | ログの最大ファイルサイズ(MB 単位)。 | オプション |
| clusterAgent.logProperties.logFileBackups | ログに保存するバックアップの最大数。最大バックアップ数に達すると、最初のログファイルの次に最も古いログファイルが削除されます。 | オプション |
| clusterAgent.logProperties.logLevel | ログの詳細の数。INFO、WARNING、DEBUG、または TRACE。 | オプション |
| clusterAgent.logProperties.maxPodLogsTailLinesCount | ログの収集中に tail される行数。 このパラメータを使用するには、ログキャプチャ機能を有効にします。「失敗したポッドのログ収集の有効化」を参照してください。 | オプション |
| clusterAgent.logProperties.stdoutLogging | デフォルトでは、クラスタエージェントは logs ディレクトリ内のログファイルに書き込みます。さらに、コンテナ | オプション |
| clusterAgent.nsToMonitorRegex | クラスタでモニタする必要のある名前空間を選択するための正規表現。 複数の名前空間をモニターする必要がある場合は、スペースを使用せずに | を使用して名前空間を区切ります。 ターゲットアロケータを使用する場合は、モニタする必要があるすべての名前空間を指定する必要があります。ターゲットアロケータは、これらの名前空間を個々のクラスタエージェントのレプリカに自動的に割り当てます。 「名前空間の編集」を参照してください。 注: UI での名前空間の変更は、YAML 設定よりも優先されます。 | オプション |
| clusterAgent.nsToExcludeRegex |
注:
このパラメータは、 | オプション |
| clusterAgent.priorityClassName | ポッドの仕様で優先順位を設定するために使用される、ポッド優先順位クラスの名前。 | オプション |
clusterAgent.securityContext.runAsGroup | アプリケーションコンテナを非ルートユーザーとして構成した場合は、対応するグループの groupId(GID)を指定します。 これにより、エージェント アーティファクトに適切なファイル権限が設定されます。 この値は、インストゥルメント化されたすべてのリソースに適用されます。 デフォルトのインストゥルメンテーション用に設定されている クラスタ エージェント イメージには、GID 9001 のグループが含まれています。 | オプション |
clusterAgent.securityContext.runAsUser | アプリケーションコンテナを非ルートユーザーとして構成した場合は、対応するユーザーの userId(UID)を指定します。 これにより、エージェント アーティファクトに適切なファイル権限が設定されます。 この値は、インストゥルメント化されたすべてのリソースに適用されます。 デフォルトのインストゥルメンテーション用に設定されている クラスタ エージェント イメージに、UID 9001 のユーザーが含まれています。 | オプション |
| clusterAgent.securityContext.allowPrivilegeEscalation | プロセスが親プロセスよりも多くの権限を取得できるかどうかを制御します。次のコンテナとして実行されている場合、この値は true です。
注:
| オプション |
| clusterAgent.securityContext.capabilities | 実行中のコンテナの POSIX 機能を追加または削除します。これは、コンテナランタイムにデフォルトの機能セットを使用します。 注:
| オプション |
| clusterAgent.securityContext.privileged | ホストでのルートに相当する特権モードでコンテナを実行します。 注:
| オプション |
| clusterAgent.securityContext.procMount | コンテナに使用する proc マウントのタイプ。 注: このパラメータは、現在、展開および展開構成モードで使用できます。 | オプション |
| clusterAgent.securityContext.readOnlyRootFilesystem | このコンテナに読み取り専用のルートファイルシステムがあるかどうかを指定します。 注:
| オプション |
| clusterAgent.securityContext.runAsNonRoot | コンテナを非ルートユーザーとして実行する必要があるかどうかを指定します。 この値が true の場合、Kubelet は実行時にイメージを検証して、ルートとして実行したときにコンテナの開始が失敗することを確認します。このパラメータが指定されていない場合、または値が false の場合、検証は行われません。 注: このパラメータは、現在、展開および展開構成モードで使用できます。 | オプション |
| clusterAgent.securityContext.seLinuxOptions | SELinux コンテキストをコンテナに適用します。このパラメータが指定されていない場合、コンテナランタイムは各コンテナにランダムな SELinux コンテキストを割り当てます。 注:
| オプション |
| clusterAgent.securityContext.seccompProfile | コンテナで使用される seccomp オプションを指定します。ポッドレベルとコンテナレベルの両方で seccomp オプションが指定されている場合、コンテナオプションはポッドオプションをオーバーライドします。 注:
| オプション |
| clusterAgent.securityContext.windowsOptions | すべてのコンテナに Windows 固有のオプションを指定します。 注:
| オプション |
| クラスタエージェントのポッド構成 | ||
| agentPod.labels | 必要なポッドラベルをクラスタエージェントポッドに追加します。これらのラベルは、クラスタエージェントの展開にも追加されます。 | オプション |
| agentPod.nodeSelector | エージェントポッドは、その labels プロパティ内に指定された key-value ペアを含むノードで実行されます。「nodeSelector」を参照してください。 | オプション |
| agentPod.resources | クラスタエージェントに対する CPU リソースとメモリリソースの要求と制限。 | オプション |
| agentPod.tolerations | ポッドに必要な許容値の配列。「Taint and Tolerations」を参照してください。 | オプション |
| ポッドフィルタの設定 | ||
| podFilter | 次に基づいたブロックリストまたは許可リストポッド:
名前によるブロックリストまたは許可リストの登録は、ラベルによるブロックリストまたは許可リストの登録よりも優先されます。たとえば、podFilter が次の場合: podFilter: blocklistedLabels: - release: v1 allowlistedNames: - ^podname これにより、名前が「podname」で始まるものを除いて、ラベル「
| オプション |
| ターゲットアロケータ設定 | ||
| targetAllocator.enabled | 使用可能なクラスタエージェントのレプリカに対する名前空間の自動割り当ての使用を有効化します。デフォルトでは、無効になっています。このプロパティを有効にするには、 enabled を trueに設定します。 ターゲットアロケータの詳細については、 「ターゲットアロケータ」を参照してください。 | オプション |
| targetAllocator.clusterAgentReplicas | クラスタエージェントのレプリカの数。ターゲットアロケータが有効になっている場合、デフォルト値は 3 です。要件に基づいてレプリカ数を設定します。必要なレプリカ数を判断するには、「クラスタエージェントの要件およびサポート対象環境」を参照してください。 | オプション これは、[targetAllocator.enabled] |
| targetAllocator.autoScaling.enabled | デフォルト値は false です。レプリカを作成するための自動スケーリングを有効にするには、 true を指定します。 | オプション |
| targetAllocator.autoScaling.replicaProfile | 使用されるプロファイル。現在、 | オプション。 自動スケーリングが有効になっている場合は必須です。 |
| targetAllocator.autoScaling.maxClusterAgentReplicas | 自動スケールに必要なレプリカの最大数を指定します。 | オプション |
| targetAllocator.autoScaling.scaleDown.stableizationWindowSeconds | ターゲットアロケータがレプリカをスケールダウンできるまでの時間を秒単位で指定します。 スケールダウンするとメトリックがドロップすることがあります。デフォルトでは、このパラメータは無効になっています。 | オプション |
| ターゲットアロケータのポッド構成 | ||
| targetAllocatorPod.agentPod.labels | 必要なポッドラベルをポッドに追加します。これらのラベルは、ターゲットアロケータの展開にも追加されます。 | オプション |
| targetAllocatorPod.nodeSelector | ターゲットアロケータポッドは、その labels プロパティ内に指定されたキーと値のペアを含むノードで実行されます。「nodeSelector」を参照してください。 | オプション |
| targetAllocatorPod.agentPod.resources | ターゲット アロケータに対する CPU リソースとメモリリソースの要求と制限。 | オプション |
| targetAllocatorPod.agentPod.tolerations | ポッドに必要な許容値の配列。「Taint and Tolerations」を参照してください。 | オプション |
| targetAllocatorPod.imagePullPolicy | ターゲットアロケータのイメージプルポリシー。 | オプション |
| targetAllocatorPod.imagePullSecret | プライベート Docker レジストリまたはリポジトリからイメージをプルする場合の認証に使用されるクレデンシャルファイル。Docker レジストリ構成に基づいて、クラスタエージェントのイメージ(クラスタ エージェント イメージ同じ)をプルする場合に Splunk AppDynamics オペレータが使用するシークレットファイルの作成が必要になる場合があります。「コマンドラインでログイン情報を入力してシークレットを作成する」を参照してください。 | オプション |
| targetAllocatorPod.priorityClassName | ポッドの仕様で優先順位を設定するために使用される、ポッド優先順位クラスの名前。 | オプション |
| targetAllocatorPod.nodeSelector | ターゲットアロケータポッドは、その labels プロパティ内に指定された | オプション |
| targetAllocatorPod.tolerations | ポッドに必要な許容値の配列。「Taint and Tolerations」を参照してください。 | オプション |
| targetAllocatorPod.resources | クラスタエージェントに対する CPU リソースとメモリリソースの要求と制限。 | オプション |
targetAllocatorPod.securityContext 注: OpenShift バージョンが 4.14 より新しい場合は、securityContext 内のすべての子パラメータが、セキュリティコンテキスト制約(SCC)で概説されている許容値に基づいて指定されていることを確認します。Red Hat OpenShift ドキュメントの「セキュリティコンテキスト上の制約」を参照してください。 たとえば、 |
これにより、エージェント アーティファクトに適切なファイル権限が設定されます。 この値は、インストゥルメント化されたすべてのリソースに適用されます。 デフォルトのインストゥルメンテーション用に設定されている | オプション |
これにより、エージェント アーティファクトに適切なファイル権限が設定されます。 この値は、インストゥルメント化されたすべてのリソースに適用されます。 デフォルトのインストゥルメンテーション用に設定されている | ||
このパラメータを設定しない場合、Helm はデフォルト値 true を使用します。 注: このパラメータは、現在、展開および展開構成モードで使用できます。 | ||
| capabilities:実行中のコンテナの POSIX 機能を追加または削除します。これは、コンテナランタイムにデフォルトの機能セットを使用します。 注: このパラメータは、現在、Deployment および DeploymentConfig モードで使用できます。 | ||
privileged:ホストでのルートに相当する特権モードでコンテナを実行します。 このパラメータを設定しない場合、Helm はデフォルト値 true を使用します。 注: このパラメータは、現在、Deployment および DeploymentConfig モードで使用できます。 | ||
procMount:コンテナに使用する proc マウントのタイプ。 注: このパラメータは、現在、展開および展開構成モードで使用できます。 | ||
| readOnlyRootFilesystem:このコンテナに読み取り専用のルートファイルシステムがあるかどうかを指定します。 注: このパラメータは、現在、展開および展開構成モードで使用できます。 | ||
| runAsNonRoot:コンテナを非ルートユーザーとして実行する必要があるかどうかを指定します。 この値が true の場合、Kubelet は実行時にイメージを検証して、ルートとして実行したときにコンテナの開始が失敗することを確認します。このパラメータが指定されていない場合、または値が false の場合、検証は行われません。 注: このパラメータは、現在、展開および展開構成モードで使用できます。 | ||
| seLinuxOptions:SELinux コンテキストをコンテナに適用します。このパラメータが指定されていない場合、コンテナランタイムは各コンテナにランダムな SELinux コンテキストを割り当てます。 注: このパラメータは、現在、展開および展開構成モードで使用できます。 | ||
| seccompProfile:コンテナで使用される seccomp オプションを指定します。ポッドレベルとコンテナレベルの両方で seccomp オプションが指定されている場合、コンテナオプションはポッドオプションをオーバーライドします。 注: このパラメータは、現在、展開および展開構成モードで使用できます。 | ||
| windowsOptions:すべてのコンテナに Windows 固有のオプションを指定します。 注: このパラメータは、現在、展開および展開構成モードで使用できます。 | ||
クラスタへの複数のクラスタエージェントのインストール
クラスタエージェントの Helm チャートでは、クラスタ内の複数のクラスタエージェントのインストールをサポートしています。これは、単一のクラスタエージェントのポッドモニタリング制限を超える大規模なクラスタで必要になることがあります。「クラスタエージェントの要件およびサポート対象環境」を参照してください。
自動インストルメンテーションと手動の相関関係(Kubernetes 1.25 以降)を使用する必要がない場合は、ターゲットアロケータを使用してクラスタエージェントをインストールできます。
ターゲットアロケータ:
- 指定された数のクラスタエージェントのレプリカを作成することにより、大規模クラスタのモニタリングを簡素化します。
- 使用可能なクラスタエージェントのレプリカに名前空間を自動的に割り当てます。
- コントローラに送信するクラスターデータを集約します。
展開される各クラスタエージェントは、異なる設定にする必要があります。これは、nsToMonitor、nsToMonitorRegex, nsToMonitorExcludeRegex、および podFilter プロパティを使用して、モニタリングを名前空間とポッドの異なるセットに制限することで実現されます。「クラスタエージェントの設定」を参照してください。
クラスタエージェントをインストールするには、次の手順を実行します。
クラスタエージェントの Helm チャートの設定例
次の例は、クラスタエージェントの Helm チャートのさまざまな設定を示しています。
クラスタエージェントの Helm チャートを使用したカスタム SSL の有効化
user-values.yaml
controllerInfo:
url: https://<controller-url>:443
account: <appdynamics-controller-account>
accessKey: <appdynamics-controller-access-key>
#=====
customSSLCert: "<base64 of PEM formatted cert>"
#=====
agentServiceAccount: appdynamics-cluster-agent-ssl # Can be any valid name
operatorServiceAccount: appdynamics-operator-ssl # Can be any valid name
クラスタエージェントの Helm チャートを使用したプロキシコントローラの有効化
認証なしの場合:
user-values.yaml
# To install Cluster Agent
installClusterAgent: true
controllerInfo:
url: https://<controller-url>:443
account: <appdynamics-controller-account>
accessKey: <appdynamics-controller-access-key>
#=====
proxyUrl: http://proxy-url.appd-controller.com
#=====
agentServiceAccount: appdynamics-cluster-agent-ssl # Can be any valid name
operatorServiceAccount: appdynamics-operator-ssl # Can be any valid name
認証ありの場合:
user-values.yaml
# To install Cluster Agent
installClusterAgent: true
controllerInfo:
url: https://<controller-url>:443
account: <appdynamics-controller-account>
accessKey: <appdynamics-controller-access-key>
#=====
authenticateProxy: true
proxyUrl: http://proxy-url.appd-controller.com
proxyUser: hello
proxyPassword: world
#=====
agentServiceAccount: appdynamics-cluster-agent-ssl # Can be any valid name
operatorServiceAccount: appdynamics-operator-ssl # Can be any valid name
クラスタエージェントの Helm チャートを使用した nodeSelector と許容値の追加
user-values.yaml
agentPod:
nodeSelector:
nodeLabelKey: nodeLabelValue
tolerations:
- effect: NoExecute
operator: Equal
key: key1
value: val1
tolerationSeconds: 11
operatorPod:
nodeSelector:
nodeLabelKey: nodeLabelValue
anotherNodeLabel: anotherNodeLabel
tolerations:
- operator: Exists
key: key1
機密データのベストプラクティス
複数の values.yaml ファイルを使用して、機密データを個別の values.yaml ファイルに分けることを推奨します。これらの値の例を次に示します。
- controllerInfo.password
- controllerInfo.accessKey
- controllerInfo.customSSLCert
- controllerInfo.proxyPassword
各 values のファイルはデフォルトの構造(values.yaml)に従い、機密性の低い設定プロパティのファイルを簡単に共有し、機密性の高い値を安全に保ちます。
以下にデフォルトの user-values.yaml ファイルの例を示します。
# To install Cluster Agent
installClusterAgent: true
imageInfo:
agentImage: dtr.corp.appdynamics.com/sim/cluster-agent
agentTag: latest
operatorImage: docker.io/appdynamics/cluster-agent-operator
operatorTag: latest
imagePullPolicy: Always
controllerInfo:
url: https://<controller-url>:443
account: <appdynamics-controller-account>
username: <appdynamics-controller-username>
password: <appdynamics-controller-password>
accessKey: <appdynamics-controller-access-key>
agentServiceAccount: appdynamics-cluster-agent-ssl # Can be any valid name
operatorServiceAccount: appdynamics-operator-ssl # Can be any valid name
user-values-sensitive.yaml
controllerInfo:
password: welcome
accessKey: abc-def-ghi-1516
Helm チャートをインストールする場合は、複数の -f を使用します
helm install -f ./user-values.yaml -f ./user-values-sensitive.yaml "<my-cluster-agent-helm-release>" appdynamics-cloud-helmcharts/cluster-agent --namespace ca-appdynamics