Download PDF
Download page Helm チャートを使用したクラスタエージェントのインストール.
Helm チャートを使用したクラスタエージェントのインストール
このページでは、Helm チャートを使用してクラスタエージェントを展開する方法について説明します。
Helm は Kubernetes のパッケージマネージャです。Helm チャートは、一連の Kubernetes リソースについて説明するファイルのコレクションです。クラスタエージェントの Helm チャートは、クラスタ エージェント オペレータとクラスタエージェントを展開するのに便利な方法です。クラスタエージェントの Helm チャートを使用して、1 つのクラスタに複数のクラスタエージェントを展開することもできます。これは、単一のクラスタエージェントのポッドモニタリング制限を超える大規模なクラスタで必要になることがあります。「クラスタエージェントの要件およびサポート対象環境」を参照してください。
要件
- クラスタ エージェント バージョン 20.6 以降
- コントローラバージョン 20.6 以降
クラスタエージェントの Helm チャートが Helm 3.0 と互換性を持っている
クラスタへの単一のクラスタエージェントのインストール
チャートリポジトリを Helm に追加します。
helm repo add appdynamics-charts https://ciscodevnet.github.io/appdynamics-charts
BASHクラスタで
appdynamics
の名前空間を作成します。kubectl create namespace appdynamics
BASHvalues-ca1.yaml
の例では、Helm 値ファイルを作成します。
コントローラのログイン情報を使用してcontrollerInfo
プロパティを更新します。clusterAgent
プロパティを更新して、モニタする名前空間とポッドを設定します。使用可能なプロパティnsToMonitor
、nsToMonitorRegex
、nsToExcludeRegex
、およびpodFilter
については、「クラスタエージェントの設定」を参照してください。values-ca1.yaml
# 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: dev-.*
YML使用可能なオプションの詳細については、「values.yaml の設定オプション」を参照してください。また、次のコマンドを使用して、Helm チャートリポジトリから
values.yaml
のコピーをダウンロードできます。helm show values appdynamics-charts/cluster-agent
BASHクラスタ(通常は
kube-system
名前空間に配置)に Kubernetesmetrics-server
をインストールしていない場合は、値ファイルでinstall.metrics-server
をtrue
に設定し、サブチャートを呼び出してインストールします。install: metrics-server: true
BASHinstall.metrics-server
を設定すると、--namespace
フラグが付いた名前空間にmetrics-server
がインストールされます。この名前空間は、クラスタエージェントと同じです。クラスタエージェントを
appdynamics
名前空間に展開します。helm install -f ./values-ca1.yaml "<my-cluster-agent-helm-release>" appdynamics-charts/cluster-agent --namespace=appdynamics
BASH
自動インストゥルメンテーションの有効化
クラスタエージェントが正常にインストールされたことを確認したら、値 YAML ファイルの instrumentationConfig
セクションに設定を追加して、自動インストゥルメンテーションを有効にできます。この例では、instrumentationConfig.enabled
が true
に設定され、複数の instrumentationRules
が定義されています。詳細については、クラスタエージェントを使用したアプリケーションの自動インストゥルメンテーションを参照してください。
values-ca1.yaml with Auto-Instrumentation Enabled
# 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
appNameStrategy: namespace
imageInfo:
java:
image: "docker.io/appdynamics/java-agent:latest"
agentMountPath: /opt/appdynamics
imagePullPolicy: Always
instrumentationRules:
- namespaceRegex: groceries
language: dotnetcore
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-charts/cluster-agent --namespace appdynamics
設定オプション
設定オプション | 説明 | 必須 |
---|---|---|
deploymentMode | 単一クラスタでの複数クラスタエージェントの展開に使用 | オプション |
イメージ設定オプション(values.yaml の imageInfo キーの下の設定オプション) | ||
imageInfo.agentImage | クラスタエージェントのイメージアドレス(<registryUrl>/<registryAccount>/<project> 形式) | オプション(デフォルトは Docker ハブイメージ) |
imageInfo.agentTag | クラスタエージェントのイメージタグ/バージョン | オプション(デフォルトは最新) |
imageInfo.operatorImage | オペレータのイメージアドレス(<registryUrl>/<registryAccount>/<project> 形式) | オプション(デフォルトは Docker ハブイメージ) |
imageInfo.operatorTag | オペレータのイメージタグ/バージョン | オプション(デフォルトは最新) |
imageInfo.imagePullPolicy | オペレータポッドのイメージプルポリシー | オプション |
コントローラ設定オプション(values.yaml の controllerInfo キーの下の設定オプション) | ||
controllerInfo.accessKey | AppDynamics コントローラのアクセスキー | 必須 |
controllerInfo.account | AppDynamics コントローラのアカウント | 必須 |
controllerInfo.authenticateProxy | プロキシが認証を必要とする場合は true または false | オプション |
controllerInfo.customSSLCert | PEM 形式の SSL 証明書の Base64 エンコーディング | オプション |
controllerInfo.password | AppDynamics コントローラのパスワード | 自動インストゥルメンテーションが有効になっている場合にのみ必須です。 |
controllerInfo.proxyPassword | プロキシ認証のパスワード | オプション |
controllerInfo.proxyUrl | コントローラが一部のプロキシの背後にある場合のプロキシ URL | オプション |
controllerInfo.proxyUser | プロキシ認証のユーザ名 | オプション |
controllerInfo.url | AppDynamics コントローラの URL | 必須 |
controllerInfo.username | AppDynamics コントローラのユーザ名 | 自動インストゥルメンテーションが有効になっている場合にのみ必須です。 |
RBAC 設定 | ||
| クラスタエージェントによって使用されるサービスアカウント | オプション |
| 前述された ServiceAccounts が Helm によって作成される場合は true に設定します | オプション |
| AppDynamics オペレータが使用するサービスアカウント | オプション |
エージェントのポッド構成 | ||
agentPod.nodeSelector | クラスタエージェントのポッド仕様の Kubernetes ノードセレクタフィールド | オプション |
agentPod.tolerations | クラスタエージェントのポッド仕様の Kubernetes 許容フィールド | オプション |
agentPod.resources | クラスタエージェントのポッド仕様の Kubernetes CPU およびメモリのリソース | オプション |
オペレータのポッド設定 | ||
operatorPod.nodeSelector | AppDynamics オペレータのポッド仕様の Kubernetes ノードセレクタフィールド | オプション |
operatorPod.tolerations | AppDynamics オペレータのポッド仕様の Kubernetes 許容フィールド | オプション |
operatorPod.resources | AppDynamics オペレータポッド仕様の Kubernetes CPU およびメモリのリソース | オプション |
スイッチのインストール | ||
install.metrics-server | メトリックがインストールされる予定の場合は true。エージェントと同じ名前空間に metrics-server がインストールされます。 | オプション |
クラスタへの追加のクラスタエージェントのインストール
クラスタエージェントの Helm チャートでは、クラスタ内の複数のクラスタエージェントのインストールをサポートしています。これは、単一のクラスタエージェントのポッドモニタリング制限を超える大規模なクラスタで必要になることがあります。「クラスタエージェントの要件およびサポート対象環境」を参照してください。
展開する追加の各クラスタエージェントは、以前に展開したクラスタエージェントとは異なる設定にする必要があります。これは、nsToMonitor
、nsToMonitorRegex, nsToMonitorExcludeRegex
、および podFilter
プロパティを使用して、モニタリングを名前空間とポッドの異なるセットに制限することで実現されます。詳細については、クラスタエージェントの設定を参照してください。
最初のクラスタエージェントは、上記の手順を使用してインストールする必要があります。この場合、deploymentMode
プロパティのデフォルト値は上書きされず、PRIMARY
に設定されます。追加のクラスタエージェントで、deploymentMode
を NAMESPACED
に設定する必要があります。
追加のクラスタエージェントをインストールするには、次の手順を実行します。
最初のクラスタエージェントと同じ
controllerInfo
プロパティを使用する、values-ca2.yaml
と呼ばれる新しい値ファイルを例として作成します。deploymentMode
をNAMESPACED
に設定します。
このクラスタエージェントのモニタリング範囲を設定するには、nsToMonitorRegex
やpodFilter
などのプロパティを追加します。values-ca2.yaml
deploymentMode: NAMESPACED # 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: stage.* podFilter: allowlistedLabels: - label1: value1 - label2: value2 blocklistedLabels: [] allowlistedNames: [] blocklistedNames: []
YML最初のインストールで使用した以前の名前空間とは異なる名前空間を作成します。
kubectl create ns appdynamics-ca2
BASH追加のクラスタエージェントをインストールします。
helm install -f ./values-ca2.yaml "<my-2nd-cluster-agent-helm-release>" appdynamics-charts/cluster-agent --namespace=appdynamics-ca2
BASH
PRIMARY
モードを使用する最初のクラスタエージェントでのみ自動インストゥルメンテーションを有効にできます。Namespaced
モードを使用する追加のクラスタエージェントによって自動インストゥルメンテーションが有効になっている場合、Helm チャートでエラーが生成されます。
クラスタエージェントの Helm チャートの設定例
次の例は、クラスタエージェントの Helm チャートのさまざまな設定を示しています。
クラスタエージェントの Helm チャートを使用したカスタム SSL の有効化
user-values.yaml
controllerInfo:
url: https://<controller-url>:443
account: <appdynamics-controller-account>
username: <appdynamics-controller-username>
password: <appdynamics-controller-password>
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
controllerInfo:
url: https://<controller-url>:443
account: <appdynamics-controller-account>
username: <appdynamics-controller-username>
password: <appdynamics-controller-password>
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
controllerInfo:
url: https://<controller-url>:443
account: <appdynamics-controller-account>
username: <appdynamics-controller-username>
password: <appdynamics-controller-password>
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
とtolerations
の追加
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
)に従い、機密性の低い設定プロパティのファイルを簡単に共有し、機密性の高い値を安全に保ちます。
Default user-values.yaml
File Example
user-values.yaml
deploymentMode: PRIMARY
imageInfo:
agentImage: docker.io/appdynamics/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-charts/cluster-agent --namespace ca-appdynamics